typescript:在编译时检测对未初始化变量的赋值

时间:2014-03-19 18:14:45

标签: javascript typescript

请参阅代码here

interface ITest {
    Name: string
}

var t:ITest;
//var t:ITest = {Name:null};

t.Name = "hello";

这是一个运行时错误,因为t永远不会初始化,并且可以通过取消注释该行来解决。有没有办法在编译时检测未初始化变量的赋值?

2 个答案:

答案 0 :(得分:1)

不,在TypeScript中没有标准化的方法来防止分配给未初始化的变量的属性。

许多人会尝试通过单元测试或断言库捕获该错误,该库将在设置属性之前验证对象是否存在。

答案 1 :(得分:1)

没有TS不能那样做。有充分的理由。假设您在文件a中声明,在文件b中设置并在文件c中使用。

TypeScript无法知道你要加载文件a然后是b然后c。在运行时,您可能最终首先加载文件c(使用脚本标记)并仍然会收到此错误。