【发布时间】:2019-02-05 16:34:51
【问题描述】:
以下代码
let k = "1";
k += 1;
console.log(k);
即使在严格模式下也可以使用 TypeScript 正确编译。我本来预计 tsc 会因Cannot add a string and an integer. 之类的错误而失败。为什么构建成功?我可以防止这种危险行为吗?
【问题讨论】:
-
字符串和数字之间的
+运算符在 TypeScript 和 JavaScript 中有效。为什么要阻止这种情况? -
因为我希望 TypeScript 强制显式强制。我编写的代码 99% 的时间都是编程错误,我希望 TS 在构建时尽可能长地引发它们。我想不出任何一种强类型语言是允许且有意义的。
-
对于有价值的东西,相反是非法的:如果
k是number,TypeScript 将在k += "1"上出错。
标签: typescript