const
和 readonly
是 TypeScript 中用于声明常量的关键字,它们有一些区别和不同的作用。
-
区别:
const
可以用于声明变量和对象属性,而readonly
只能用于声明对象属性。const
声明的变量的值在声明后不能被修改,而readonly
声明的对象属性的值只能在对象初始化时或构造函数中被修改。
-
作用:
const
用于声明一个不可变的常量,可以提高代码的可读性和可维护性,避免在使用常量时出现错误的赋值操作。readonly
用于声明一个只读属性,在对象中表示该属性只能读取,不能修改。这可以确保对象的某些属性只能在对象创建时或特定方法中进行更改,提高代码的安全性和可靠性。-
使用示例:
1.使用const
声明常量:
const PI = 3.14159;
// PI = 3.14; // Error: 无法重新分配常量
console.log(PI); // 输出: 3.14159
2.使用 readonly
声明只读属性:
class Circle {
readonly radius: number;
constructor(radius: number) {
this.radius = radius;
}
getArea() {
return Math.PI * this.radius * this.radius;
}
}
const circle = new Circle(5);
// circle.radius = 10; // Error: 无法分配到 "radius" ,因为它是只读属性
console.log(circle.getArea()); // 输出: 78.53975