TypeScript入门教程 之 const
const
是ES6 / TypeScript提供的非常受欢迎的功能。它使您可以与变量保持不变。从文档以及运行时的角度来看,这都是很好的。要使用const只需替换var
为const
:
const foo = 123;
与强制用户键入诸如
let constant foo
变量+行为说明符之类的其他语言相比,该语法要好得多(IMHO)。
可读性和可维护性
const
在可读性和可维护性方面都是很好的做法,并且避免使用不可思议的文字,例如
// Low readability if (x > 10) { } // Better! const maxRows = 10; if (x > maxRows) { }
声明时必须初始化
以下是编译器错误:
const foo = 123; foo = 456; // ERROR: Left-hand side of an assignment expression cannot be a constant
创建后是不可变的
常量在创建后是不可变的,因此,如果尝试将它们分配给新值,则是编译器错误:
const foo = 123 ;
foo = 456 ; //错误:赋值表达式的左侧不能为常量
块范围
A const
是块作用域,就像我们用看到的那样let
:
const foo = 123; if (true) { const foo = 456; // Allowed as its a new variable limited to this `if` block }
深不可变性
const
就保护变量引用而言,一个对象文字也可以使用:
const foo = { bar: 123 }; foo = { bar: 456 }; // ERROR : Left hand side of an assignment expression cannot be a constant
但是,它仍然允许对象的子属性发生突变,如下所示:
const foo = { bar: 123 }; foo.bar = 456; // Allowed! console.log(foo); // { bar: 456 }
首选const的情况
始终使用const
,除非您打算延迟变量的初始化或进行重新分配(let
用于这些情况)。
翻译来源:https://gitee.com/yunwisdoms/typescript-book/blob/master/docs/const.md