打字稿编译器忽略元组
问题描述:
具有下面的代码“不分配”的错误:打字稿编译器忽略元组
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文件,如果遇到错误。