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

Javascript typescript:在编译时检测未初始化变量的赋值,javascript,typescript,Javascript,Typescript,请看代码 这是一个运行时错误,因为t从未初始化,可以通过取消对行的注释来解决。有没有办法在编译时检测对未初始化变量的赋值?没有,TypeScript中没有一种标准化的方法来防止对未初始化变量的属性赋值 许多人会尝试通过单元测试或断言库捕获该错误,在设置属性之前验证对象是否存在 不,TS不能那样做。有充分的理由。假设您在文件a中声明,在文件b中设置,在文件c中使用 TypeScript无法知道您将先加载文件a,然后加载文件b,然后加载文件c。在运行时,您可能会首先加载文件c(使用脚本标记),但仍然

请看代码


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

没有,TypeScript中没有一种标准化的方法来防止对未初始化变量的属性赋值


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

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


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

虽然确实有一些情况下它不能工作,但肯定有一些情况下它可以工作。
interface ITest {
    Name: string
}

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

t.Name = "hello";