π TypeScript
π₯ νμ κ³Ό μΈν°νμ΄μ€μ μ°¨μ΄μ β
νμ μ€ν¬λ¦½νΈμμ λͺ λͺ λ νμ μ μ μνλ λ°©λ²μ λ κ°μ§κ° μμ΅λλ€.
type TState = {
name: string;
capital: string;
}
interface IState {
name: string;
capital: string;
}
νμ κ³Ό μΈν°νμ΄μ€ μ¬μ΄μ μ‘΄μ¬νλ μ°¨μ΄λ₯Ό λΆλͺ νκ² μκ³ , κ°μ μν©μμλ λμΌν λ°©λ²μΌλ‘ λͺ λͺ λ νμ μ μ μν΄ μΌκ΄μ±μ μ μ§ν΄μΌ ν©λλ€.
μΈν°νμ΄μ€ μ μΈκ³Ό νμ μ μΈμ λΉμ·ν μ β
λͺ
λͺ
λ νμ
μ μΈν°νμ΄μ€λ‘ μ μνλ νμ
μΌλ‘ μ μνλ μνμλ μ°¨μ΄κ° μμ΅λλ€. λ§μ½ IState
μ TState
λ₯Ό μΆκ° μμ±κ³Ό ν¨κ» ν λΉνλ€λ©΄ λμΌν μ€λ₯κ° λ°μν©λλ€.
μΈλ±μ€ μκ·Έλμ²λ μΈν°νμ΄μ€μ νμ μμ λͺ¨λ μ¬μ©ν μ μμ΅λλ€.
type TDict = {
[key: string]: string
};
interface IDict {
[key: string]: string;
}
λν ν¨μ νμ λ μΈν°νμ΄μ€λ νμ μΌλ‘ μ μν μ μμ΅λλ€.
type TFn = (x: number) => string;
interface IFn {
(x: number): string;
}
const toStrT: TFn = (x) => '' + x;
const toStrT: IFn = (x) => '' + x;
νμ λ³μΉκ³Ό μΈν°νμ΄μ€λ λͺ¨λ μ λλ¦μ΄ κ°λ₯ν©λλ€.
type TPair<T> = {
first: T;
second: T;
}
interface IPair<T> {
first: T;
second: T;
}
μΈν°νμ΄μ€λ νμ μ νμ₯ν μ μμΌλ©°, νμ μ μΈν°νμ΄μ€λ₯Ό νμ₯ν μ μμ΅λλ€.
interface IStateWithPop extends TState {
population: number;
}
type TStateWithPop = IState & { population: number; };
μ¬κΈ°μ μ£Όμν μ μ μΈν°νμ΄μ€λ μ λμ¨ νμ
κ°μ 볡μ‘ν νμ
μ νμ₯νμ§ λͺ»νλ€λ κ²μ
λλ€. 볡μ‘ν νμ
μ νμ₯νκ³ μΆλ€λ©΄ νμ
κ³Ό &
λ₯Ό μ¬μ©ν΄μΌ ν©λλ€.
ννΈ ν΄λμ€λ₯Ό ꡬνν λλ, νμ
κ³Ό μΈν°νμ΄μ€ λ λ€ μ¬μ©ν μ μμ΅λλ€.
class StateT implements TState {
name: string = '';
capital: string = '';
}
class StateI implements IState {
name: string = '';
capital: string = '';
}
μΈν°νμ΄μ€ μ μΈκ³Ό νμ μ μΈμ λ€λ₯Έ μ β
μ λμ¨ νμ μ μμ§λ§ μ λμ¨ μΈν°νμ΄μ€λΌλ κ°λ μ μμ΅λλ€.
type AorB = 'a' | 'b';