최대 1 분 소요

순서

  1. 설명
  2. 자동추론
  3. const와의 다른점

readonly?

  • class 내부에서 property에 설정
  • interface, type에서도 설정가능함
  • 속성 선언시에나 생성자에 값을 할당할 수 있고, 중간에만 변경이 불가능하다 (초기화는 가능하나 중간에 변경이 불가능 한 것)
  • 타입매핑을 이용하여 T type을 받고 그 타입의 모든 속성을 readonly로 지정해서 사용할 수 있음 Readonly

자동추론

  • 컴파일러가 자동으로 특정 항목이 읽기 전용인것을 추론해낼 수 있음
  • 클래스에 속성이 있지만, 게터만 있고 세터가 없다면 컴파일러는 그 속성을 readonly라고 간주함

    const 와 다른점

  • const
    • 변수 참조를 위한것
    • 변수에 다른 값을 할당/대입 할 수 없음
    • 선언할때에만 초기화가능
  • readonly
    • 속성을 위한 것
    • 속성을 엘리어싱을 통해 변경할 수 있음
let foo: {
    readonly bar: number;
} = {
        bar: 123
    };

function iMutateFoo(foo: { bar: number }) {
    foo.bar = 456;
}

iMutateFoo(foo); // foo 인자가 foo 파라미터에 의해 앨리어싱됨
console.log(foo.bar); // 456!