拥有以下代码:
var abc: [string, number] = [5, "test"];
console.log(abc);
正如我所料,红色波浪线出现在' abc'下面,出现此错误:
[ts]输入' [数字,字符串]'不能分配类型' [string, 数]&#39 ;. 输入'数字'不能指定为' string'。
然而,它仍然将它编译成JS,如下所示:
var abc = [5, "test"];
console.log(abc);
我是否遗漏了一些编译器选项,或者它是一个错误?
答案 0 :(得分:1)
这是标准的TypeScript行为。对于大多数类型的错误,TypeScript编译器仍会生成JavaScript文件。 (它确实返回一个非零退出代码,构建脚本可以检测并执行操作。)
尝试其他类型的错误,例如错误输入的变量名称:
var abc: number = 5;
console.log(abd);
你会看到同样的事情发生。
编辑:哦,是一个编译器标志来改变这种行为。使用:
tsc --noEmitOnError test.ts
如果遇到错误,将禁止生成test.js文件。