这是假设noImplicityAny
设置为true
.
鉴于这种:
function Bar() { this.f = 100; }
这不起作用:
let x = new Bar();
你得到的错误是:
'new'表达式,其目标缺少构造签名,隐式具有"any"类型.
好吧,我想这有点道理.
但是,如果我在混音中添加一个界面,它可以正常工作:
interface Bar { f: number; } function Bar() { this.f = 100; } let x = new Bar(); console.log(x.f);
当鼠标悬停在Bar
您身上时,请将其视为以下类型:
interface Bar function Bar(): void
所以我知道正在进行一些合并.我现在还不清楚为什么这个有用呢?这个新的合并类型究竟是什么,为什么函数的返回类型Bar()
不再暗示any
?