在以下代码中,调用add(n, this)
不会引发错误
其中this
的类型为Object:
var add = (n1: number, n2: number): number => n1 + n2;
var o = {
bias: 42,
addBias: function(n: number): number {
return add(n, this); // No error.
// return add(n, this.bias); // This is the correct code.
}
};
alert(o.addBias(10)); // Displays '10[object Object]'.
这是一个错误还是我错过了什么?
答案 0 :(得分:1)
这是因为this
被推断为any
类型。 any
与两个方向的所有内容都兼容,例如
var foo = 123;
var bar:any;
// Allowed
bar = foo = bar;
如果将鼠标悬停在它上面,您会看到它:
TypeScript不会在对象文字中推断出this
的含义,并假定它们是any
。
this
仅在课程中推断,即使这样,您也需要小心:https://www.youtube.com/watch?v=tvocUcbCupA&hd=1(就像JavaScript的工作方式一样)。