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