readonly 타입 설정, 불변성을 갖도록 만들기

2023. 12. 19. 17:45·기술/TypeScript

 

어떤 값에 대해 불변성을 갖도록 만들어주고 싶다면, readonly 타입으로 보호장치를 설정해 줄 수 있다.

 

타입스크립트에서 readonly 키워드는 변수, 객체, 배열 등에 사용되며 해당 요소를 읽기 전용으로 만든다.

값을 할당한 후에는 값을 변경할 수 없게 된다. (어디까지나 에디터 에러일 뿐 실제 자바스크립트 파일은 변경)

 

type Player = { //대문자로 만들기
  readonly name: string, //읽기 전용으로 설정
}

const nemo: Player = {
  name: "nemo",
};

nemo.name = "다른이름" //오류, 읽기전용이라 변경 불가


const numbers: readonly numbers[] = [1,2,3]
numbers.push(1) //오류

let arr: ReadonlyArray<number> = [1,2,3];
arr.splice(0,1); // error

//filter, map은 가능. 불변성을 해치지 않고 새 배열 반환
저작자표시 비영리 변경금지 (새창열림)

'기술 > TypeScript' 카테고리의 다른 글

Interface vs Type 타입을 지정하는 또 다른 방법  (0) 2023.12.21
여러 타입을 만족하는 하나의 타입, 타입 합치기(Intersection Type, union/&)  (1) 2023.12.19
타입 축약과 타입의 확정 (Type Aliases 별칭, Narrowing, Assertion)  (1) 2023.12.18
Object(객체)에서 여러가지 타입을 지정해야 하는 경우 [key: type]  (0) 2023.12.18
기본 타입 정리(primitive types), 한 변수에 여러 타입 지정(union), array 전용 타입(tuple), 선택적 타입(optional), 함수 타입(기본, void, never), class 타입  (1) 2023.11.26
'기술/TypeScript' 카테고리의 다른 글
  • Interface vs Type 타입을 지정하는 또 다른 방법
  • 여러 타입을 만족하는 하나의 타입, 타입 합치기(Intersection Type, union/&)
  • 타입 축약과 타입의 확정 (Type Aliases 별칭, Narrowing, Assertion)
  • Object(객체)에서 여러가지 타입을 지정해야 하는 경우 [key: type]
빔네모
빔네모
console.log("빔네모")
  • 빔네모
    bimnemo("개발")
    빔네모
  • 전체
    오늘
    어제
    • 기록 (144) N
      • 기술 (37) N
        • JavaScript (1)
        • TypeScript (9)
        • React.js (10)
        • Next.js (0)
        • 라이브러리,도구 (4) N
        • HTML,CSS (4)
        • CS (5)
        • BE (4)
      • 개발 (95)
        • 프로젝트 (0)
        • 트러블슈팅 (5)
        • 알고리즘(코딩테스트) (90)
      • 정보 (4)
      • 취미 (8)
        • 감상 (8)
  • 인기 글

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
빔네모
readonly 타입 설정, 불변성을 갖도록 만들기
상단으로

티스토리툴바