const和readonly的区别

简介: const和readonly的区别

const和readonly的区别如下:


const用于声明编译时常量,而readonly用于声明运行时只读属性。

const可以用于基本类型、对象字面量和数组字面量,而readonly只能用于对象属性和数组元素。

const声明的变量在整个作用域内具有相同的值,而readonly声明的属性只能在声明或构造函数中初始化,并且不能在其他地方重新赋值。


使用方式:

  • 使用const关键字可以直接在声明时给变量赋值,其值不能被修改。
  • 使用readonly关键字可以将类的属性或接口的属性设置为只读,即只能在声明或构造函数中初始化,不能在其他地方进行修改。


常见的使用情况和举例:

  1. 使用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用于定义运行时只读属性。在需要保证某些值不被修改的情况下,可以使用constreadonly来增加代码的可靠性和可维护性。

相关文章
|
5月前
|
JavaScript
const与readonly详解
const与readonly详解
|
5月前
|
JavaScript 前端开发 编译器
在ts中const和readonly区别?
在ts中const和readonly区别?
64 1
|
6月前
|
JavaScript 编译器
TS中const和readonly的区别
TS中const和readonly的区别
129 0
|
6月前
|
JavaScript
const和readonly的区别
const和readonly的区别
44 0
对象与const
🐰对象与const 🏡常对象 🏡常对象成员 🌸常数据成员 🌸常成员函数 🏡指向对象的常指针 🏡指向常对象的指针(常量指针) 🏡对象的常引用
|
编译器
巧用 readonly与 const
巧用 readonly与 const
158 0
巧用 readonly与 const
|
缓存 C++
【C++】const对象和const成员
【C++】const对象和const成员
121 0
|
安全 数据安全/隐私保护 C++
const string& other 可以访问私有变量?
const string& other 可以访问私有变量?
166 0