하얀 코딩

[TypeScript - 10] readonly 본문

TypeScript

[TypeScript - 10] readonly

whitecoding 2023. 6. 6. 22:28

타입스크립트에서 readonly 키워드는 읽기 전용 속성(Readonly Property)을 정의하는 데 사용됩니다.

읽기 전용 속성은 값의 할당 후에 변경되지 않도록 제한하는 역할을 합니다.

즉, 해당 속성은 초기화 시에만 값을 할당할 수 있고, 이후에는 수정할 수 없습니다.

readonly는 객체의 불변성을 유지하고 실수로 속성을 수정하는 것을 방지하기 위해 사용됩니다.

1. interface에서 readonly

interface Person {
  readonly name: string;
  age: number;
}

let person: Person = { name: "John", age: 25 };
person.name = "Alice";  // Error: 'name'은 읽기 전용입니다.
person.age = 30;  // 유효한 할당

위의 예제에서 Person 인터페이스의 name 속성은 readonly로 정의되었습니다. 

따라서 person 객체를 생성할 때 name 속성에 값을 할당할 수 있지만, 이후에는 name 속성의 값을 변경할 수 없습니다.

2. class에서 readonly

class Car {
  readonly brand: string;
  constructor(brand: string) {
    this.brand = brand;
  }
}

let car = new Car("BMW");
car.brand = "Audi";  // Error: 'brand'은 읽기 전용입니다.

위의 예제에서 Car 클래스의 brand 속성은 readonly로 정의되었습니다. 

brand 속성은 생성자에서 초기값을 받고, 이후에는 수정할 수 없습니다.