728x90
λ°μν
πμ£Όμ : Tsμ νμ κ°λ
1. νμ κ°λλ?
νμ μ μ’νλ΄κΈ° μν΄ μ¬μ©νλ κΈ°μ μ΄λ€.
λ무λ무 μ€μνλ€!
1-1. typeof
Jsμμ λ§μ΄ νμ©ν΄ λ΄€μ μΉκ΅¬λ€ :)
function print(value: string | number): string {
if(typeof value === 'number') {
return String(value);
}
if(typeof value === 'string') {
return value;
}
return value;
}
μ΄λ¬λ©΄ μμ ν΄μ§λ€..
1-2. in
- in μ°μ°μλ λͺ μλ μμ±μ΄ λͺ μλ κ°μ²΄μ μ‘΄μ¬νλ©΄ trueλ₯Ό λ°ννλ€.
- μ΄λ―Έ Jsμ μλ νμ κ²μ¬ μ°μ°μμ΄λ€.
- λ€μ λ§ν΄, κ°μ²΄κ° νΉμ μμ±μ κ°μ§κ³ μλμ§ κ²μ¬λ₯Ό ν΄μ€λ€κ³ μκ°νλ©΄ λλ€.
interface Dog {
name: string;
bark(): 'λ©λ©';
}
interface Cat {
name: string;
meow(): 'λμΉ';
}
function sayAnimal(animal: Dog | Cat) {
if('bark' in animal) {
animal.bark();
}
if('meow' in animal) {
animal.meow();
}
}
1-3. instanceof
μμ±μμ prototype μμ±μ΄ κ°μ²΄μ νλ‘ν νμ μ²΄μΈ μ΄λκ° μ‘΄μ¬νλμ§ νλ³νλ€.
μ΄ μΉκ΅¬λ Jsμ μ‘΄μ¬νλ€.
function getDate(date: Date | string): Date {
if(date instanceof Date) {
return date;
}
return new Date(date);
}
1-4. μ¬μ©μ μ μ
μμ μ λ³Έ νμ κ°λλ€μ΄ μ’ μμ½λ€κ³ λκ»΄μ§λ€.
μλ‘μ΄ μ¬μ©μ μ μ νμ κ°λλ₯Ό μμ보μ!
ν¨μ¨μ±μ΄ μ¬λΌκ°λ€. (μ¬νμ©μ΄ κ°λ₯νκΈ° λλ¬Έμ!)
function isDate(date: Date | string): date is Date {
return date instanceof Date;
}
function getDate(date: Date | string): Date {
if(isDate(date)) {
return date;
}
return new Date(date);
}
End.
728x90
λ°μν
'μ°μ½ν°λ > TypeScript' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
νμ μ€ν¬λ¦½νΈ_λ Όλ¦¬μ°μ°μνμ© (0) | 2023.02.11 |
---|---|
νμ μ€ν¬λ¦½νΈ_μ΄κ±°ν (0) | 2023.02.09 |
νμ μ€ν¬λ¦½νΈ_μΈν°νμ΄μ€ (1) | 2023.02.06 |
νμ μ€ν¬λ¦½νΈ_ν΄λμ€ (0) | 2023.02.03 |
νμ μ€ν¬λ¦½νΈ_κΈ°λ³Ένμ μμ보기 (0) | 2023.02.02 |