TypeScript-Properties

hannah·2023년 9월 27일
0

JavaScript

목록 보기
104/121

프로퍼티(Properties)

  • 컴파일러는 프로퍼티의 두 가지 요소인 필수요소 프로퍼티의 유무, 프로퍼티 타입을 검사한다.
  • ?(Optional Properties)readonly(Readonly properties)와 같은 예약어로 프로퍼티를 세밀하게 컨트롤 할 수 있다.

1. Optional Properties(선택적 프로퍼티)

  • 프로퍼티 선언 시 이름 끝에 ?를 붙여서 표시한다.
  • 인터페이스에 속하지 않는 프로퍼티의 사용을 방지하면서, 사용 가능한 프로퍼티를 기술할 때 사용한다.
  • 객체 안의 몇 개의 프로퍼티만 채워 함수에 전달하는 "option bags"같은 패턴에 유용하다.
  • Option 사항은 없어도 되지만, 만약 존재한다면, 반드시 정의해둔 Type과 일치해야 한다.
interface CompanyInfo {
  name: string;
  chairman?: string;
}

let obj: CompanyInfo = {
  name: 'FaceBook'
};

2. Readonly propertie(읽기전용 프로퍼티)

  • 객체가 처음 생성될 때만 값 설정이 가능하고, 이후 수정이 불가능하다.
  • 프로퍼티 이름 앞에 readonly를 붙여 사용한다.
interface Student {
  readonly studentNo: number;
  name: string;
}

let StudentInfo: Student = {
  studentNo: 123456,
  name: 'Cine',
};
StudnetInfo.studentNo = 111111; // Cannot addign to 'studentNo' because it is a read-only property.

readonly vs const

  • readonlyconst의 공통점: 생성 후에 배열을 변경하지 않음을 보장한다.
  • 변수는 const를 사용하고 프로퍼티는 readonly를 사용한다.
let arr: Number[] = [1, 2, 3, 4];

let readonly_arr: ReadonlyArray<number> = arr;

readonly_arr[0] = 12;	//Error
readonly_arr.push(5);	//Error
readonly_arr.length = 100;	//Error

0개의 댓글