"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > TypeScript에서 읽기 전용 사용 시 주의 사항

TypeScript에서 읽기 전용 사용 시 주의 사항

2024-08-21에 게시됨
검색:523

Cautions When Using readonly in TypeScript

읽기 전용 속성의 기본

Type Script에서는 객체의 속성 중 객체를 읽기 전용으로 만들 수 있습니다.

const person: { readonly name: string  } = { name: 'Mike' }

person.name = 21;
// → Cannot assign to 'name' because it is a read-only property.

⚠️① 읽기 전용은 컴파일 타임에만 가능합니다.

컴파일된 JavaScript 코드에서는 읽기 전용 선언이 제거되어 런타임 시 오류로 감지되지 않습니다.

⚠️② 읽기 전용은 재귀적이지 않습니다.

const person: {
  readonly name: string;
  readonly academicBackground: {
    primarySchool: string
  }
} = {
  name: 'Mike',
  academicBackground: {
    primarySchool: 'School A'
  }
}

person.academicBackground.primarySchool = 'School B'
// You can change `person.academicBackground.primarySchool`

읽기 전용으로 설정하려면 PrimarySchool에도 읽기 전용을 설정해야 합니다.

const person: {
  readonly name: string;
  readonly academicBackground: {
    readonly primarySchool: string
  }
} = {
  name: 'Mike',
  academicBackground: {
    primarySchool: 'School A'
  }
}

person.academicBackground.primarySchool = 'School B'
// → Cannot assign to 'primarySchool' because it is a read-only property.

읽기 전용

속성 수가 증가하면 각 속성에 읽기 전용을 추가하는 것이 번거롭고 코드 양도 늘어납니다.
읽기 전용을 사용하여 리팩터링할 수 있습니다.

const obj: {
  readonly a : string;
  readonly b: string;
  readonly c: string;
  readonly d: string;
} = {
  a: 'a',
  b: 'b',
  c: 'c',
  d: 'd'
}

// ↓

const obj: Readonly = {
  a: 'a',
  b: 'b',
  c: 'c',
  d: 'd'
}

행복한 코딩☀️

릴리스 선언문 이 기사는 다음과 같이 재현됩니다 : https://dev.to/noah-00/coutions when-using-readonly-in-typescript-22d7?1 침해가있는 경우 [email protected]에 문의하여 삭제하십시오.
최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3