为什么Typescript不会警告我所定义的函数与接口声明不匹配,但是如果我尝试调用该函数,它的确会警告我。
interface IFormatter {
(data: string, toUpper : boolean): string;
};
//Compiler does not flag error here.
var upperCaseFormatter: IFormatter = function (data: string) {
return data.toUpperCase();
}
upperCaseFormatter("test"); //but does flag an error here.
upperCaseFormatter
具有冗余布尔值:upperCaseFormatter("test", true); // excluding the 'true' will result in a compiler warning
。因此,接口是错误的,应该是:interface IFormatter { (data: string, toUpper? : bool): string; }
但是,这意味着即使函数签名中的函数也可以直接variableCaseFormatter
使用with进行调用而variableCaseFormatter('test');
无需指定toUpper
。请参阅我的问题,以更简单地说明我当前的困惑:stackoverflow.com/questions/23305020