我试图理解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网站上提交一个错误,以便我们的团队可以跟踪它吗?今天下午我可以把这个问题推到我们的开发部门.

再次感谢!

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top