打字稿编译器忽略元组

打字稿编译器忽略元组

问题描述:

具有下面的代码“不分配”的错误:打字稿编译器忽略元组

var abc: [string, number] = [5, "test"]; 

console.log(abc); 

红色的波浪线,如我所料,出现在“ABC”,与此错误:

[ts] Type '[number, string]' is not assignable to type '[string, number]'. Type 'number' is not assignable to type 'string'.

但是,它仍然编译成JS是这样的:

var abc = [5, "test"]; 
console.log(abc); 

我错过了一些编译器选项,或者它是一个错误吗?

这是标准的TypeScript行为。对于大多数类型的错误,TypeScript编译器仍然会生成一个JavaScript文件。 (它确实返回构建脚本可以检测并作用于一个非零退出代码。)

尝试一些其他类型的错误,如拼写错误的变量名:

var abc: number = 5; 
console.log(abd); 

,你会看到同样的事情发生。

编辑:哦,有一个编译器标志来改变这种行为。使用:

tsc --noEmitOnError test.ts 

将抑制生成test.js文件,如果遇到错误。