TypeScript
[TS] 객체의 선택적 속성(optional property, 옵셔널 프로퍼티)
_doit
2024. 7. 24. 19:07
728x90
반응형
타입스크립트(TypeScript)는 타입에 엄격한 프로그래밍 언어이므로 객체 프로퍼티의 타입을 정의했으나 값을 할당하지 않는 경우 에러가 발생한다
이러한 경우 옵셔널 프로퍼티(Optional Properties) 문법을 사용하여 해결할 수 있다.
옵셔널 프로퍼티(optional property)란?
객체의 속성 중 필수가 아닌, 있어도 되고 없어도 되는 속성
값을 할당하지 않아도 문제가 없다.
인터페이스나 타입 정의에서 물음표 ?를 사용하여 표시한다.
interface Data {
check?: boolean; // check는 있어도 되고 없어도 됨
}
const d1: Data = { check: true }; // 정상, ok가 true (boolean 타입)
const d2: Data = { check: false }; // 정상, ok가 false (boolean 타입)
const d3: Data = { check: undefined }; // 정상, ok가 undefined (옵셔널이기 때문에 허용)
const d4: Data = {}; // 정상, ok가 생략됨 (옵셔널이기 때문에 허용)
const d5: Data = { check: null }; // 오류, ok는 boolean 타입이거나 생략되어야 하는데 null은 boolean이 아님
- 객체를 정의할 때 해당 프로퍼티를 생략할 수 있다.
- 명시적으로 undefined로 설정할 수 있다.
- 타입은 정의된 타입과 일치해야 합니다 (null은 허용되지 않음)
즉, 프로퍼티의 값이 필수가 아닌 경우 선택적 프로퍼티 문법을 사용하여 값을 생략할 수 있다.
interface User {
name: string;
age?: number; // age는 있어도 되고 없어도 됨
}
const user2: User = { name: "Bob", age: 25 }; // 정상
const user1: User = { name: "Alice" }; // 정상
const user3: User = { name: "Charlie", age: undefined }; // 정상
const user4: User = { name: "David", age: null }; // 오류
-끝-
728x90
반응형