【发布时间】:2016-07-17 03:29:55
【问题描述】:
我有这个界面:
interface IParameters {
form: number;
field: string;
...
}
我希望formproperty 是数字或函数,field 是字符串或函数。
我尝试这样的事情:
interface IParameters {
form: number | Function;
field: string | Function;
...
}
我需要这个,因为在我的代码中我使用这样的变量:
var form = (typeof _oParameters.form === "function" ? _oParameters.form() : _oParameters.form);
var field = (typeof _oParameters.field === "function" ? _oParameters.field() : _oParameters.field);
我不想在我的所有代码中将此变量从字符串/数字更改为默认函数,并防止将此变量设置为其他类型。
但如果我尝试调用这两个变量之一,如函数:
var param:IParameters;
param.form();
...
我收到此错误:
无法调用类型缺少调用签名的表达式。
但param.form = 12; 有效。
我找到的唯一解决方案是将form 和field 声明为any 类型。
没有any类型的其他方式来定义这个变量吗?
【问题讨论】:
标签: function types typescript