为什么在 Angular 2 中更改"const"值不会出错?



代码很简单:

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,您将看到错误。

最新更新