代码很简单:
const num = 1;
num = 2;
console.log('num', num);
在 JSFiddle 中,浏览器控制台将显示以下错误,这很棒:
未捕获的类型错误:分配给常量变量。
但是,Angular 2 中的相同代码不会给出任何错误,最后 num
等于 2。看到这个普伦克。
为什么在 Angular 2 中更改"const"值不会出错?这是一个错误吗?谢谢
在线 TypeScript 编译器的默认目标低于"es6",因此在生成的代码中const
被替换为 var
以保持兼容性,但如果更改 config.js请将其替换为:
typescriptOptions: {
emitDecoratorMetadata: true,
target: 'es6'
}
编译器将输出const
,您将看到错误。