
νμ
μ€ν¬λ¦½νΈλ₯Ό μ΄ν΄νλ€λ κ²μ λ¨μν λ¬Έλ²μ μλ κ² μλλΌ
λ€μ 3κ°μ§λ₯Ό μ΄ν΄νλ κ²μ΄λ€.
let num: number = 10;
let name: string = "army";
π κ°μ μ’ λ₯λ₯Ό λͺ ννκ² μ§μ
let num: number = 10;
let literal: 10 = 10;
π 10 β number (μμ νμ β ν° νμ ν¬ν¨)
let num: number = "hello"; // β
π μ€ν μ μ μ€λ₯λ₯Ό μ‘μμ€
π νμ = κ°λ€μ μ§ν©
μ:
number β λͺ¨λ μ«μ
10 β λ± νλμ κ°
10 β number
π μ΄ κ°λ νλλ‘ λͺ¨λ κ² μ€λͺ λ¨
unknown (μ΅μμ)
β
any (μμΈ β οΈ)
β
string / number / boolean
β
리ν°λ΄ νμ ("hello", 10)
β
never (μ΅νμ)
β unknown (κ°μ₯ μμ ν μ΅μμ)
let a: unknown = 10;
π λͺ¨λ κ° κ°λ₯
π νμ§λ§ λ°λ‘ μ¬μ© λΆκ°
a.toFixed(); // β
let a: any = 10;
a.toFixed(); // κ°λ₯
π νμ κ²μ¬ 무μ β μν
function error(): never {
throw new Error();
}
π μ λ κ°μ΄ λμ€μ§ μλ κ²½μ°
π βμ΄ νμ μ λ€λ₯Έ νμ μΌλ‘ μ¨λ λλκ°?β
π μμ νμ β ν° νμ β
π ν° νμ β μμ νμ β
let a: 10 = 10;
let b: number = a; // β
let a: number = 10;
let b: 10 = a; // β
let num1: number = 10;
let num2: 10 = 10;
num1 = num2; // β
π μ΄μ
10 β number
π νμ μ€ν¬λ¦½νΈλ βꡬ쑰 κΈ°λ° λΉκ΅βλ₯Ό νλ€
type Animal = {
name: string;
color: string;
};
type Cat = {
name: string;
color: string;
breed: string;
};
Animal π μνΌνμ (쑰건 μ μ)
Cat π μλΈνμ (쑰건 λ§μ)
let animal: Animal;
let cat: Cat = {
name: "army",
color: "black",
breed: "μ½λ¦¬μ μ",
};
animal = cat; // β
// cat = animal; β
π βνμν μμ±μ λ€ κ°μ§κ³ μμΌλ©΄ OKβ
π κ°μ²΄ 리ν°λ΄μμλ§ λ°μ
β μλ¬
let book: Book = {
name: "리μ‘νΈ",
price: 30000,
skill: "react", // β
};
let programingBook = {
name: "리μ‘νΈ",
price: 30000,
skill: "react",
};
let book: Book = programingBook; // β
func({
name: "리μ‘νΈ",
price: 30000,
skill: "react", // β
});
func(programingBook); // β
10 β number
unknown (μ΅μμ)
κΈ°λ³Έ νμ
리ν°λ΄ νμ
never (μ΅νμ)
π μμ β ν° κ°λ₯
π ν° β μμ λΆκ°λ₯
π βκ΅¬μ‘°λ§ λ§μΌλ©΄ λλ€β
π κ°μ²΄ 리ν°λ΄μμλ§ μ격 κ²μ¬
β any λ¨λ°
π νμ
μ€ν¬λ¦½νΈ μλ―Έ μμ΄μ§
β unknownμ λ°λ‘ μ¬μ©
π λ°λμ νμ
μ²΄ν¬ νμ
β λ€μ΄μΊμ€ν
μ°©κ°
cat = animal; // β
β κ°μ²΄λ μμ ν κ°μμΌ νλ€κ³ μκ°
π β νλ¦Ό
π νμν μμ±λ§ μμΌλ©΄ OK
π νμ μ€ν¬λ¦½νΈλ
βκ°μ μ§ν©κ³Ό κ·Έ κ΄κ³λ₯Ό μ΄μ©ν΄ μ€λ₯λ₯Ό λ§λ μΈμ΄βμ΄λ€.