const和readonly的区别如下:
const用于声明编译时常量,而readonly用于声明运行时只读属性。const可以用于基本类型、对象字面量和数组字面量,而readonly只能用于对象属性和数组元素。const声明的变量在整个作用域内具有相同的值,而readonly声明的属性只能在声明或构造函数中初始化,并且不能在其他地方重新赋值。使用方式:
const关键字可以直接在声明时给变量赋值,其值不能被修改。readonly关键字可以将类的属性或接口的属性设置为只读,即只能在声明或构造函数中初始化,不能在其他地方进行修改。常见的使用情况和举例:
使用const:
const pi = 3.14159;const apiUrl = "https://api.example.com";使用readonly:
在类中将某些属性设置为只读:
- class Person {
- readonly name: string;
- constructor(name: string) {
- this.name = name;
- }
- }
- const person = new Person("Alice");
- console.log(person.name); // 输出: "Alice"
- person.name = "Bob"; // 错误: 'name' 是只读属性,不能重新赋值
在接口中定义只读属性:
- interface Point {
- readonly x: number;
- readonly y: number;
- }
- const point: Point = { x: 10, y: 20 };
- console.log(point.x, point.y); // 输出: 10 20
- point.x = 30; // 错误: 'x' 是只读属性,不能重新赋值
总结来说,const用于定义编译时常量,而readonly用于定义运行时只读属性。在需要保证某些值不被修改的情况下,可以使用const或readonly来增加代码的可靠性和可维护性。