题
我试图理解TypeScript中工作的类型推断的程度。在下面的代码示例中,为什么是 foo
的实施 baz.esplode
有效?我的理解是空方法匹配 void
.
interface bar {
horace: number;
}
interface baz {
esplode: (string, number) => bool;
}
interface bazzer extends bar, baz { }
var foo: bazzer = {
horace: 12,
esplode: function () { }
}
var x = foo.esplode('crackers', 2);
谢谢!
解决方案
谢谢你看!
这实际上是一个错误。当一个函数是上下文类型的时候,我们应该把它当作存在一个返回类型注释来表示预期的返回类型(根据语言规范的第4.9节),所以你是正确的,应该有一个错误。
我已经有一个修复程序,但是你可以在CodePlex网站上提交一个错误,以便我们的团队可以跟踪它吗?今天下午我可以把这个问题推到我们的开发部门.
再次感谢!
不隶属于 StackOverflow