any 타입
- 타입 스크립트는 타입에 관한 정보가 더 많을수록 더 좋습니다.
- 타입 정보는 개발자의 의도를 명확하게 전달할 수 있습니다.
- 효과적인 코드의 유지보수가 가능합니다.
- any타입을 일부러 사용하지는 말자! - 타입스크립트가 제공하는 타입 검사가 없어지니, 자바스크립트를 쓰는 것과 다를 바 없게 됩니다.
- 타입을 지정할 수 없는 제한적인 경우에만 사용
유니온 타입
- 제한된 타입을 동시에 지정하고 싶을 때가 있습니다.
- | 파이프라인 기호를 사이에 두고 동시에 타입을 지정할 수 있습니다.
let anyVal = number | string;
anyVal은 number나 string 타입 중 아무 타입의 값이 올 수 있습니다.
type strOrNum = number | string;
let numStr : strOrNum = '100';
function convertToString(val : strOrNum) : string {
return String(val);
}
function convertToNumber(val : strOrNum) : number {
return Number(val);
}
생각할 거리 - 타입 가드
type strOrNum = number | string;
let numStr : strOrNum = '100';
let item : number;
function converToString(val : strOrNum) : string {
item = numStr; // 오류!!!
return String(val);
}
범위가 작은 변수(오직 number) 에 큰 변수(string or num)를 넣는 것은 문제가 될 수 있습니다. 타입스크립트는 '발생할 수 있는 모든 가능성'을 고려합니다. val이 string일 가능성이 단 1%라도 있다면, number 타입인 item에 대입하는 것을 허용하지 않습니다. 이것이 타입스크립트가 안전한 이유입니다.
이때에는 typeof operator로 타입검사를 해준 뒤에 사용하면됩니다.
if(typeof val === 'string'){
item = 0;
} else {
item = val;
}
'FE > TypeScript' 카테고리의 다른 글
| [TypeScript] 타입스크립트의 객체지향언어 - 클래스와 객체, 접근지정자, getter와 setter (0) | 2026.03.31 |
|---|---|
| [Typescript] 배열과 튜플, 그리고 스프레드 연산자에 대해 알아보자. (0) | 2026.03.29 |
| [TypeScript] 타입스크립트의 열거형 (enum) / 리터럴 타입에 대해 알아보자. (0) | 2026.03.18 |
| [Typescript] 인터페이스 / 선택적 프로퍼티 (0) | 2026.03.18 |
| [TypeScript] 환경설정 (0) | 2026.03.17 |