Type vs Interface
νμ΅ ν€μλ
νμ λ³μΉ(Type)
μΈν°νμ΄μ€(interface)
νμ λ³μΉ(Type) vs μΈν°νμ΄μ€(interface)
νμ
λ³μΉ
λ³μλ₯Ό μ μΈνλ― νμ μ λ³λλ‘ μ μν μ μλ€.
type νμ μ΄λ¦ = νμνμ μ μ΄λ¦μ λλ¬Έμλ‘ μ§μ
type TGender = 'female' | 'male';
type TUser = {
name: string;
age: number;
gender: TGender; // ππ» typeλ³μΉ μμ λλ€λ₯Έ typeλ³μΉμΌλ‘ μ μ©μ΄ κ°λ₯νλ€.
};
const user1: TUser = {
name: 'νκΈΈλ',
age: 20,
};π¨ λμΌν μ€μ½ν λ΄μμλ λμΌν μ΄λ¦μ νμ λ³μΉμ μ μΈνλκ²μ λΆκ°λ₯νλ€!
π¨ νμ μ 리ν°λ΄λ‘ μ§μ ν΄λλ€λ©΄?
νμ
λ³μΉμ νμ₯
&μ°μ°μλ₯Ό μ΄μ©ν νμ₯
β μ½κΈ°μ μ© readonly : ν΄λΉ ν€μλκ° λΆμ΄λ©΄ κ°μ μ½λ건, κ°μ²΄μ value κ° λ³κ²½νλ건 ν μ μλ€.
μΈν°νμ΄μ€
νμ λ³μΉκ³Ό λμΌνκ² νμ μ μ΄λ¦μ μ§μ΄μ£Όλ λ λ€λ₯Έ λ¬Έλ²
μμνμ μ μ§μ ν μ μκ³ ,
κ°μ²΄νμ λ§ μ§μ κ°λ₯interface νμ μ΄λ¦ {}νμ μ μ΄λ¦μ λλ¬Έμλ‘ μ§μ
βοΈ λμΌν μ€μ½ν λ΄μμλ λμΌν μ΄λ¦μ μΈν°νμ΄μ€ μ μΈμ΄ κ°λ₯νλ€!
μΈν°νμ΄μ€μ νμ₯
&μ°μ°μλ₯Ό νμ©ν νμ₯
extendsλ₯Ό μ¬μ©ν νμ₯
λ€μ€νμ₯
,λ₯Ό μ¬μ©ν νμ₯
νμ
λ³μΉ(Type) vs μΈν°νμ΄μ€(interface)
μ μΈλ°©μμ μ°¨μ΄
νμ₯λ°©μμ μ°¨μ΄
π€₯ κ°λ°μμ μ·¨ν₯μ λ°λΌ μ¬μ©νλ λ°©μμ΄ λ€λ₯ΌλΏ λκ°μ§μ ν° μ°¨μ΄λ μλ€.
π μ°Έκ³
Last updated