有人可以向我解释为什么使用typescript和Webstorm,以下内容不会出错:
interface IABC {
var1: boolean;
}
class ABC implements IABC {
var1;
constructor() {
}
clear= (): void => {
this.var1 = 999;
};
}
制造
var ABC = (function () {
function ABC() {
var _this = this;
this.clear = function () {
_this.var1 = 999;
};
}
return ABC;
})();
它是仅仅与Webstorm一起使用还是正常的,它允许将var1分配给999?
答案 0 :(得分:3)
我在操场上看到了同样的事情。
我认为这是因为没有类型注释,它被输入any
,如果你使var1
成为一个数字,它不会使用以下消息进行编译
班级' ABC'错误地实现了界面' IABC': 财产类型' var1'是不兼容的:输入' number'不能分配给'布尔'。
所以我认为因为它没有typeinfo,所以它被输入为any
,因此一切都被允许。
请注意,如果启用--noImplicitAny
,它会在var1声明中给出错误,因为在这种情况下它是隐式的。