interface optionsParameter {
url: string;
}
function DEC(options: optionsParameter){ }
DEC(2) //typescript check compilation error
let obj:any = {
name: "Hello"
}
obj.DEC = function(options: optionsParameter){}
obj.DEC(1); // no compilation error thrown
我希望obj.DEC方法根据指定的接口进行类型检查,但事实并非如此。
似乎只有常规函数声明或表达式工作,而不是作为方法在对象内部。
答案 0 :(得分:0)
将obj
定义为空对象时
let obj = {
}
不允许使用以下行
obj.DEC = function(options: optionsParameter){}
因为您已将obj
定义为没有属性的对象。这就是为什么后续行不能按预期进行类型检查的原因。
但是,如果您将obj
定义为具有DEC
函数的对象,则类型检查将按预期工作:
let obj = {
DEC: function(options: optionsParameter){}
}