728x90
interface Studnet {
readonly studnetNo: number;
name: string;
}
let StudnetInfo: Studnet = {
studnetNo: 123456,
name: 'Cine',
};
StudnetInfo.studnetNo = 111111; // error!
위의 인터페이스에서는 studentNo 프로퍼티에 readonly가 붙어있는데요.
readonly프로퍼티는 읽기 전용 프로퍼티로 객체 생성시 할당된 프로퍼티의 값을 바꿀수 없고 읽을수만 있습니다.
말그대로 읽기 전용이라고 생각할수 있습니다.
이런 readonly 프로퍼티를 수정하려 한다면 에러가 발생하는데요.
Cannot assign to 'studentNo' because it is a read-only property.
라는 에러가 발생합니다.
배열을 선언할 때 ReadonlyArray<T> 타입을 사용하면 읽기 전용 배열을 생성할 수 있습니다.
let arrNumber: ReadonlyArray<number> = [1,2,3];
arrNumber.splice(0,1); // error
arrNumber.push(4); // error
arrNumber[0] = 100; // error
위처럼 배열을 ReadonlyArray로 선언하면 배열의 내용을 변경할 수 없습니다.
선언하는 시점에만 값을 정의할 수 있으니 주의해서 사용하세요.
728x90
'TS 관련 > TypeScript' 카테고리의 다른 글
[TypeScript] Union Type(유니언 타입), Type Alias, 타입가드 (0) | 2022.07.16 |
---|---|
[TypeScript] Enum(열거형)과 리터럴 타입 (0) | 2022.07.15 |
[TypeScript] 타입으로 사용되는 인터페이스(Interface) (0) | 2022.07.13 |
[TypeScript] 타입스크립트의 타입(Type)과 타입 명시 (1) | 2022.07.11 |
[TypeScript] 타입 추론(Type Inference) (0) | 2022.07.09 |