2014-03-19 68 views
0

检测分配给未初始化的变量请参阅代码here打字稿:在编译时

interface ITest { 
    Name: string 
} 

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

t.Name = "hello"; 

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

回答

1

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

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

1

没有TS不能做到这一点。有充分的理由。假设你在文件a中声明,在文件b中设置并在文件c中使用。

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

+0

尽管确实存在无法正常工作的情况,但肯定会出现这种情况。 – WiredPrairie

+0

@WiredPrairie同意 – basarat