实现接口的类是否考虑了接口中的类型?

时间:2014-12-17 09:10:31

标签: typescript

有人可以向我解释为什么使用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?

1 个答案:

答案 0 :(得分:3)

我在操场上看到了同样的事情。 我认为这是因为没有类型注释,它被输入any,如果你使var1成为一个数字,它不会使用以下消息进行编译

  

班级' ABC'错误地实现了界面' IABC':    财产类型' var1'是不兼容的:输入' number'不能分配给'布尔'。

所以我认为因为它没有typeinfo,所以它被输入为any,因此一切都被允许。

请注意,如果启用--noImplicitAny,它会在var1声明中给出错误,因为在这种情况下它是隐式的。