μΈν°νμ΄μ€λ μνΈ κ°μ μ μν μ½μ νΉμ κ·μΉμ μλ―Έν©λλ€.
νμ
μ€ν¬λ¦½νΈμμ λ°λ³΅λλ νμ
λ€μ λͺ¨μμ νλμ μΈν°νμ΄μ€λ‘ μ μλ₯Ό νμ¬ μ¬μ© ν©λλ€.
β λ³μμ νμ©ν μΈν°νμ΄μ€
- μ¬μ©ν λ λ°λμ μΈν°νμ΄μ€μ μλ μμ±μ μ μν΄μΌ ν©λλ€.
// μΈν°νμ΄μ€ μ μΈ
interface User {
age: number;
name: string;
}
let hyunho: User = {
age: 26,
name: 'ννΈ'
}
β ν¨μμ νμ©ν μΈν°νμ΄μ€
- μΈμμ μΈν°νμ΄μ€λ₯Ό μ μ© -> νΉμ νμμ μ€μνλ λ°μ΄ν°λ§ λ°κ² λ€κ³ μ μ ν©λλ€.
interface User {
age: number;
name: string;
}
function getUser(user: User){
console.log(user);
}
const capt = {
name: 'captin',
//age: 100
}
getUser(capt); // μ€λ₯ λ°μ, capt μ μμ±μ name λ§ κ°μ§κ³ μκ³ , ageλ μκΈ° λλ¬Έμ
β ν¨μμ ꡬ쑰μ μΈν°νμ΄μ€ νμ©
interface sumFuntion{
(a: number, b: number): number;
}
let sum: sumFuntion;
sum = function(a: number, b: number): number{
return a + b;
}
β μΈλ±μ±
// μΈλ±μ±
// λ°°μ΄μ μΈλ±μ€λ νμ μ«μ. 0 λΆν° μμ
interface StringArray{
\[index: number\]: string; // index λ κΈ°μ‘΄μ²λΌ number μλ°κ³ , : μμ νμ
μ μ§μ ν μ μλ€.
}
let arr: StringArray = \['a','b','c'\];
arr\[0\] = 10 // μ€λ₯
// indexλ₯Ό μ΄μ©ν΄μ number λ‘ μ κ·Όμ νλ κ²μ λ§λ€.
// νμ§λ§ λ°°μ΄μμ λ€μ΄κ° λͺ¨λ νμ
μ stringμΌλ‘ μ μΈλμκΈ° λλ¬Έμ μ€λ₯κ° λλ€.
β μΈν°νμ΄μ€ νμ₯
extends
ν€μλ μ¬μ©
// μΈν°νμ΄μ€ νμ₯
// extends ν€μλ μ¬μ©,
interface Person {
name: string;
age: number;
}
// μλμ κ°μ μΈν°νμ΄μ€κ° μλ€λ©΄, μ€λ³΅λλ κ°λ€μ λ€λ₯Έ μΈν°νμ΄μ€κ° κ°μ§κ³ μλ κ²½μ°
// interface Developer {
// name: string;
// age: number;
// language: string;
//}
interface Developer extends Person {
language: string;
}
// μ€λ΅
let john: Developer = {
language: 'ts', // μλ¬ λ°μ.
// developer λ₯Ό personμΌλ‘ νμ₯μ λ°μκΈ° λλ¬Έμ personμ μλ νμ
λ€ κΉμ§ μ μλ₯Ό ν΄μ£Όλ κ²μ΄ κ·μΉ
// age: 20,
// name: 'μ‘΄'
}
// μ λ΅
let john: Developer = {
language: 'ts'
age: 20,
name: 'μ‘΄'
}
β μ΅μ μμ±
- μΈν°νμ΄μ€λ₯Ό μ¬μ©ν λ μΈν°νμ΄μ€μ μ μλμ΄ μλ μμ±μ λͺ¨λ λ€ κΌ μ¬μ©νμ§ μμλ λ©λλ€.
interface μΈν°νμ΄μ€ μ΄λ¦ {
μμ±?: νμ
;
}
interface CraftBeer {
name: string;
hop?: number;
}
let myBeer = {
name: 'Saporo'
};
function brewBeer(beer: CraftBeer) {
console.log(beer.name); // Saporo
}
brewBeer(myBeer);
β μ½κΈ° μ μ© μμ±
- μΈν°νμ΄μ€λ‘ κ°μ²΄λ₯Ό μ²μ μμ±ν λλ§ κ°μ ν λΉνκ³ κ·Έ μ΄νμλ λ³κ²½ν μ μλ μμ±μ μλ―Έν©λλ€.
readonly
ν€μλ μ¬μ©
interface CraftBeer {
readonly brand: string;
}
let myBeer: CraftBeer = {
brand: 'Belgian Monk'
};
// μΈν°νμ΄μ€λ‘ κ°μ²΄λ₯Ό μ μΈνκ³ λμ μμ νλ €κ³ νλ©΄ μλμ κ°μ΄ μ€λ₯κ° λ©λλ€.
myBeer.brand = 'Korean Carpenter'; // error!
μ°Έκ³
'π Front-End > TypeScript' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
Union Type ( μ λμ¨ νμ ) κ³Ό Intersection Type (0) | 2022.10.22 |
---|---|
Type Aliases ( νμ λ³μΉ ) (0) | 2022.10.22 |
νμ μ€ν¬λ¦½νΈμ ν¨μ (0) | 2022.10.22 |
νμ μ€ν¬λ¦½νΈ κΈ°λ³Έ νμ (0) | 2022.10.22 |
TypeScript (0) | 2022.10.22 |