[TypeScript] any, unknown, void, never
any
์๋ฌด ํ์ ์ด๋ ๋ ์ ์์.
const anyArr: any[] = [1, 2, 3, 4];
const bArr: any = true;
// any๋ ์ด๋ฐ ์์ผ๋ก ๋ณดํธ์ฅ์น๋ฅผ ๋นํ์ฑํ์ํค๊ธฐ ๋๋ฌธ์ ์ฃผ์ํด์ ์ฌ์ฉํด์ผ ํ๋ค.
anyArr + bArr; // ํ์ฉ๋จ
unknown
ex) API๋ก๋ถํฐ ์๋ต์ ๋ฐ๋๋ฐ ๊ทธ ์๋ต์ ํ์ ์ ๋ชจ๋ฅธ๋ค๋ฉด unknown์ด๋ผ๋ ํ์ ์ ์ธ ์ ์๋ค.
let unknownA: unknown;
let examB = unknownA + 1; // ๊ฒฝ๊ณ
if (typeof unknownA === "number") {
// ์ด ๋ฒ์ ์์์๋ unknownA๊ฐ number์ด๊ธฐ ๋๋ฌธ์ ์๋ ์์
์ ํ์ฉํจ.
let examB = unknownA + 1;
}
unknownA.toUpperCase(); //๊ฒฝ๊ณ
if (typeof unknownA === "string") {
// ์ด ๋ฒ์ ์์์๋ unknownA๊ฐ string์ด๊ธฐ ๋๋ฌธ์ ์๋ ์์
์ ํ์ฉํจ.
unknownA.toUpperCase();
}
void
void๋ ์๋ฌด๊ฒ๋ ๋ฆฌํดํ์ง ์๋ ํจ์๋ฅผ ๋์์ผ๋ก ์ฌ์ฉ
// Typescript๋ ์ด ํจ์๊ฐ ์๋ฌด๊ฒ๋ returnํ์ง ์๋๋ค๋ ๊ฒ์ ์๋์ผ๋ก ์ธ์.
function hello() {
console.log("hello");
}
const funcA = hello();
funcA.toUpperCase();
never
ํจ์๊ฐ ์ ๋ returnํ์ง ์์ ๋ ๋ฐ์
function helloWorld(): never {
throw new Error("hello");
}
function hello2(name: string | number) {
if (typeof name === "string") {
return name.toUpperCase();
} else if (typeof name === "number") {
return name + 1;
} else {
// ํ์
์ด ์ฌ๋ฐ๋ฅด๊ฒ ๋ค์ด์๋ค๋ฉด, ์ด ์ค์ฝํ ๋ด์ ์ฝ๋๋ ์ ๋ ์คํ๋์ง ์์์ผ ํ๋ค
}
}
Leave a comment