[타입시스템 17] readony 변경 방지

2022. 7. 20. 13:21책/이펙티브 타입스크립트

1. readonly

  • 배열의 요소를 읽을 수 있지만, 쓸 수는 없다
  •  length를 읽을 수는 있지만, 바꿀 수는 없다
  • 원본 배열을 변경하는 메서드(pop, push, ... )를 호출할 수 없다


2. readonly 효과

  • TS는 매개변수가 함수 내에서 변경이 일어나는지 체크한다
  • 호출하는 쪽에선 함수가 매개변수를 변경하지 않는다는 보장을 받게 된다
  • 따라서 함수가 매개변수를 변경하지 않는다면 readonly로 선언하는게 좋다
    (의도치 않은 변경 방지, 더 넓은 타입 호출 가능)
  • 단, 어떤 함수가 readonly로 만들어졌다면 이를 호출하는 다른 함수도 모두 readonly여야 한다