TypeScript中const和readonly的区别

const所创建的引用类型,其内部的变量仍能进行改变(引用类型中存储的是地址,更改内部的变量,引用类型的地址确实没变)

const a = [1, 2, 3];
a.push(102); //仍然能够进行更改,我们不希望是这样

因此就有readonly诞生惹

//使数组中的元素值也无法被更改
let b: readonly number[] = [1, 2, 3];
b[0] = 101; //error

//直接使用ReadonlyArray<T>创建数组
let a: ReadonlyArray<number> = [1, 2, 3];
a.push(102); // error

//可以直接使用在类中指定变量身上
interface Rx {
  readonly x: number;
}
let rx: Rx = { x: 1 };
rx.x = 12; // error

//Readony<T>
interface X {
  x: number;
}
let rx: Readonly<X> = { x: 1 };
rx.x = 12; // error
posted @ 2022-03-17 19:33  BONiii  阅读(221)  评论(0编辑  收藏  举报