在为字符串var指定数字/ bool时,为什么编译器不会抛出错误

时间:2017-02-15 17:38:37

标签: javascript typescript

我是Typescript的新手,我正在尝试理解Javascript var类型的工作原理, 我创建了一个简单的类:并将name属性限制为字符串,但是当我向我的字符串变量插入一个数字时,我没有得到任何错误,我的字符串属性保存了数字,因为它是一个字符串......我错过了什么? 当我调试它时,我发现名字是345。 //在ts完成

class Customer {
    public name: string = "";
    validate(input: string): string {
        alert("hey");
        return "hey";
    }
}

使用我的班级的代码

 <script>        
        var tito = new Customer();
        tito.name = 345;
    </script>

1 个答案:

答案 0 :(得分:4)

假设代码的第一部分是使用Typescript完成的,那么使用该类的代码似乎放在HTML中并且它是纯粹的Javascript,这就是为什么不检查类型的原因,因为这不是由Typescript编译的。 为了使用类型检查,您的代码需要放在.ts文件中:

// Inside a .ts file
var tito = new Customer();
tito.name = 345;