TS中const和readonly的区别
文章类型:TypeScript
发布者:hp
发布时间:2022-10-17
const和readonly都有表示只读的意思,他们区别是什么?
const主要用于变量,主要控制得是值
1:声明必须初始化,不能重新分配值,
2:隐含static,
3:编译期静态解析的常量
const msg:string='小张'
msg='小李'//Cannot assign to 'msg' because it is a constant
readonly用在属性上
1:可以声明为类的成员,可以在声明中初始化,也可以在构造函数中初始化,
2:不默认static
3:运行期动态解析的常量
4:只能在类中使用
如果new方式读取更改值也是不允许的
namespace a{
class NameObj{
static readonly age:number=100
readonly age:number=99
readonly height:number
constructor(){
this.height=178
}
}
const name:NameObj=new NameObj()
// name.age=100//Cannot assign to 'age' because it is a read-only property
console.log(NameObj.age) //static方式不能通过new
console.log(name.age)
}