반응형
any
any
타입으로 선언되었을 경우에는 어떠한 타입의 될 수 있는 타입을 의미한다. any
를 사용하면 TypeScript의 타입 체크를 우회할 수 있기에 해당 변수에 어떠한 타입의 값이든 할당할 수 있다. 이로 인하여 타입 안정성이 없어지므로, 런타임 오류가 발생할 가능성이 높아진다.
let something: any;
something = 123; // 숫자 할당 가능
something = "hello"; // 문자열 할당 가능
something = true; // 불리언 할당 가능
something.someMethod(); // 타입 오류 없음, 하지만 런타임에 오류가 발생할 수 있음
unknown
unknown
타입은 any
와 마찬가지로 어떤 타입의 값이든 담을 수 있지만, 그 값을 사용하기 전에 타입 검사를 수행하여야 한다. 이를 통해 무분별한 타입 사용을 방지하고, 코드의 안정성을 높일 수 있다.
let value: unknown;
value = 123;
value = "hello";
// value.trim(); // 오류: 'trim'은 'unknown' 타입에 대해 사용할 수 없습니다.
if (typeof value === "string") {
value.trim(); // 문자열로 타입이 확인된 후에는 안전하게 사용 가능
}
never
never
타입은 절대 발생할 수 없는 값
을 의미한다. 즉, 함수가 정상적으로 끝나지 않거나, 예외를 발생시키는 경우, 또는 조건문에서 절대 도달할 수 없는 코드에 대해 사용한다.
function error(message: string): never {
throw new Error(message); // 이 함수는 절대 값을 반환하지 않음
}
function fail(): never {
return error("Something failed");
}
function checkType(x: string | number): boolean {
if (typeof x === "string") {
return true;
} else if (typeof x === "number") {
return false;
} else {
const neverValue: never = x; // 여기서 'x'는 'never' 타입이어야 함
return neverValue;
}
}
반응형
'Develope > 기타' 카테고리의 다른 글
더 나은 코드 품질을 위한 SOLID 원칙 (0) | 2024.08.30 |
---|---|
Typescript Infer란? (0) | 2024.08.26 |
컴파일러(Compiler), 트랜스파일러(Transpiler) (0) | 2024.06.22 |
# Visual Studio Code(VSCode) 키보드 입력이 정상적으로 작동하지 않을 때 (0) | 2024.03.04 |
Visual Sutdio(VSCode) REST Client (0) | 2024.02.18 |