μΌ | μ | ν | μ | λͺ© | κΈ | ν |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- react
- Firebase
- NEXT
- λ³μ
- λ΄μΌλ°°μ
- μκ³ λ¦¬μ¦
- type
- Redux
- PROJECT
- λΆνΈμΊ ν
- ν¨μ
- μλ°μ€ν¬λ¦½νΈ
- native
- JS
- νλ‘ νΈμλ
- wil
- μλ¬
- νμ€
- νμ
- μ¨λΌμΈ
- νλ‘μ νΈ
- trainning
- 리μ‘νΈ
- μ½λ©
- K-Digital
- κ°λ°μ
- rn
- λ΄μΌλ°°μμΊ ν
- API
- JavaScript
Archives
- Today
- Total
Frontend κ°λ°μ - hyo.loui
νμ μ€ν¬λ¦½νΈ - νμ μΆλ‘ (Type Inference) λ³Έλ¬Έ
π―λͺ©μ :
TS νμ μΆλ‘ (Type Inference), μ 리 λ° λ³΅μ΅
1. νμ μΆλ‘ μ΄λ?
μ μ νμ μΈμ΄λ₯Ό μ¬μ©ν λ λ¨μ μ νμ μ μ μνλλ°
μκ°κ³Ό λ Έλ ₯μ΄ λ§μ΄ νμν΄μ μμ°μ±μ΄ μ νλ μ μλ€.
TSμ κ²½μ° λ€μν κ²½μ°μ λν΄ νμ μΆλ‘ μ μ 곡νκΈ° λλ¬Έμ κΌ νμν κ²½μ°μλ§ νμ μ μ μν μ μλ€.
// Type Inference
let abc = "abc"; // string
let number = 2; // number
// abc = 123; // Error
// number = "abcd"; // Error
const n1 = 123; // string
const n2 = "123"; // number
const array2 = [1, 2, 3]; // Array
const [x1, x2, x3] = array2; // Array
// array2.push('a'); // Error
const obj = { numId: 1, stringId: "1" };
const { numId, stringId } = obj;
console.log("ππ obj", numId === stringId); // Error
2. ν¨μμ νμ μΆλ‘
ν¨μμμλ νλΌλ―Έν°μ, ν¨μμ νμ λ μΆλ‘ μ΄ κ°λ₯νλ€
// ν¨μμ νμ
μΆλ‘
const func1 = (a = 1, b = "b") => {
return `${a}, ${b}`;
};
// const test_ = func1(3, 5); // Error νμ
μΆλ‘ μΌλ‘ νλΌλ―Έν° bμ νμ
μ string μ΄κΈ° λλ¬Έ.
// const test_2: number = func1(3, 5); // Error νμ
μΆλ‘ μΌλ‘ stringμ returnνκΈ° λλ¬Έ.
// vv μ¬κΈ°μ return κ°μ΄ number | string μ μΆλ‘ νκ³ μμ.
const func2 = (value: number) => {
if (value < 10) {
return value;
} else {
return `${value} is big`;
}
};
const teste1 = func2(9);
console.log("ππ teste1", teste1);
const teste2 = func2(11);
// const teste2 = func2("11"); // Error νλΌλ―Έν°μμ λ°λ κ°μ΄ numberμ΄κΈ° λλ¬Έμ μλ¬ λ°
λ€λ§ ν¨μμ defaultλ₯Ό μ§μ νμ κ²½μ°,
νμ μ΄ μ§μ λ κ²μΌλ‘ κ°μ£Όν΄ λ€λ₯Έ νμ μ λ°μ΄ν°κ° λ€μ΄μ€λ©΄
μλ¬λ₯Ό λ°μμν¨λ€.
μ΅μ’ μ 리
- νμ μΆλ‘ μ νμ μ€ν¬λ¦½νΈκ° μ½λλ₯Ό ν΄μν΄λκ°λ λμμ μλ―Έ
- νμ μ μ μνλλ° μκ°κ³Ό λ Έλ ₯μ΄ λ§μ΄ νμν΄μ μμ°μ±μ΄ μ ν
- λ€μν κ²½μ°μ λν΄ νμ μΆλ‘ μ μ 곡νκΈ° λλ¬Έμ νμν κ²½μ°μλ§ νμ μ μ μν μ μλ€.
'Typescript' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
νμ μ€ν¬λ¦½νΈ - Generic (μ λ€λ¦) (0) | 2023.01.19 |
---|---|
νμ μ€ν¬λ¦½νΈ - interface extension(μΈν°νμ΄μ€ νμ₯) (0) | 2023.01.19 |
νμ μ€ν¬λ¦½νΈ - interface (μΈν°νμ΄μ€) (0) | 2023.01.18 |
νμ μ€ν¬λ¦½νΈ - Type Alias (νμ λ³μΉ) (0) | 2023.01.18 |
νμ μ€ν¬λ¦½νΈ - Union (μ λμ¨) νμ (0) | 2023.01.17 |