![[TypeScript] TypeScript 공부일지: 계층도 살피기 [6/4 study]](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FdlH4V8%2FbtsHYWolPvu%2FAAAAAAAAAAAAAAAAAAAAAHs6pxoiaTAxQnc8gE5jStjk_0_WZ0Nv3Whl1h4y5wuq%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1759244399%26allow_ip%3D%26allow_referer%3D%26signature%3D%252Fy8nr6NFXGpucM%252BG6OUOHzOymcQ%253D)
[TypeScript] TypeScript 공부일지: 계층도 살피기 [6/4 study]Frontend/TypeScript2024. 6. 4. 12:26
Table of Contents
TypeScript 공부일지: 계층도 살피기
❗️주의
지극히 개인 공부한 내용을 올린 거기 때문에 이해하지 못할 수도 있음
❗️계층도 살피기
/**
* Unknown 타입 - 모든
*/
function unknownExam() {
let a: unknown = 1; // Up Cast로 가능, 반대로 Down Cast는 불가능
let b: unknown = "hello";
let c: unknown = true;
let d: unknown = null;
let e: unknown = undefined;
let unknownVar: unknown;
// let num: number = unknownVar;
// let str: string = unknownVar;
// let bool: boolean = unknownVar;
}
/**
* never 타입
* - 불가능 , 모순을 의미하는 타입
* - 모든 타입의 서브 타입
* - 모듭 집합의 부분 집합(공집합 - 아무것도 없는 집합)
* - 절대 이 함수가 반환하는 것 자체가 말이 안될다 라고 할 때
*/
function neverExam() {
function neverFunc(): never {
while (true) {}
}
let num: number = neverFunc(); // up casting 이니까 가능
let str: string = neverFunc();
let bool: boolean = neverFunc();
}
/**
* void 타입
*/
function voidExam() {
function voidFunc(): void {
console.log("hi");
return undefined; //up casting 이므로 return도 가능
}
let voidVar: void = undefined;
}
/**
* any 타입
* 치트키 - 타입 계층도 완벽히 무시
*/
function anyExam() {
let unknownVar: unknown;
let anyVar: any;
let undefinedvar: undefined;
let neverVar: never;
// any는 자기한테 오는 down casting도 되고 자기가 down casting 하는것도 가능함
anyVar = unknownVar; //down casting 인데 오류 안나오고 허용 됨
undefinedvar = anyVar; //down casting 됨
// 이 치트키도 안되는게 있음
// neverVar = anyVar; 이건 안됨 never type은 정말 순수한 공집합 이기 때문에 어떠한 타입도 down casting 불가
}
@동혁이 :: Eun_Frontend
프론트엔드 공부일지 입니다.
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!