Typescript: Map,Set ... ES5 λŒ€μƒ

에 λ§Œλ“  2015λ…„ 05μ›” 28일  Β·  3μ½”λ©˜νŠΈ  Β·  좜처: microsoft/TypeScript

νƒ€μž…μŠ€ν¬λ¦½νŠΈ 컴파일러λ₯Ό 버전 1.4.1μ—μ„œ 1.5.0 λ² νƒ€λ‘œ μ—…λ°μ΄νŠΈν•œ ν›„ λ‚΄ ν”„λ‘œμ νŠΈμ— ν¬ν•¨λœ μ†ŒμŠ€ μ½”λ“œκ°€ 'Map is not found'와 같은 였λ₯˜ 둜그λ₯Ό μƒμ„±ν•˜κ²Œ λ˜μ—ˆμŠ΅λ‹ˆλ‹€.
κ·Έλž˜μ„œ λ‚˜λŠ” 이 문제λ₯Ό μ—°κ΅¬ν–ˆκ³  결둠에 λ„λ‹¬ν–ˆλ‹€. lib.d.tsλŠ” tsconfig.jsonμ—μ„œ μ„ νƒλœ ES6을 μ œμ™Έν•˜κ³  Map 및 Set μ •μ˜λ₯Ό ν¬ν•¨ν•˜μ§€ μ•Šκ²Œ λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

사싀 Map and Set은 ES6의 μ‚¬μ–‘μž…λ‹ˆλ‹€. ES5 μ΄ν•˜λ₯Ό λŒ€μƒμœΌλ‘œ ν•˜λŠ” ν”„λ‘œμ νŠΈμ—μ„œλŠ” Mapκ³Ό Set을 μ‚¬μš©ν•  수 μ—†λŠ” 것이 λ‹Ήμ—°ν•©λ‹ˆλ‹€.
ν•˜μ§€λ§Œ Typescript 1.4.1 이전에 λŒ€μƒμœΌλ‘œ ES5λ₯Ό μ„ νƒν•˜λ”λΌλ„ Mapκ³Ό Set을 μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
ES5용으둜 μ œμž‘λœ ν”„λ‘œμ νŠΈμ—μ„œ Mapκ³Ό Set을 μ‚¬μš©ν•˜λ„λ‘ μ„€μ •ν•˜λŠ” 것은 μœ„ν—˜μ΄ λ”°λ₯Έλ‹€λŠ” 것을 μ•Œκ³  μžˆμŠ΅λ‹ˆλ‹€.
Mapκ³Ό Set을 μ§€μ›ν•˜μ§€ μ•ŠλŠ” λΈŒλΌμš°μ €κ°€ 있기 λ•Œλ¬Έμž…λ‹ˆλ‹€.

κ·ΈλŸ¬λ‚˜ μ΄λŸ¬ν•œ μ •μ˜λ₯Ό μ‚¬μš©ν•˜κ±°λ‚˜ μ‚¬μš©ν•˜μ§€ μ•Šλ„λ‘ μ „ν™˜ν•˜κΈ°μœ„ν•œ ꡬ성 속성 쀑 일뢀가 더 λ‚«λ‹€κ³  μƒκ°ν•©λ‹ˆλ‹€. κ·Έλ ‡κ²Œ μƒκ°ν•˜μ§€ μ•Šμ•„?

Question

κ°€μž₯ μœ μš©ν•œ λŒ“κΈ€

@LimeStreem 1.5.0- λ² νƒ€μ—μ„œ λΌμ΄λΈŒλŸ¬λ¦¬μ—μ„œ 일뢀 IE νŠΉμ • μœ ν˜•μ„ μ œκ±°ν–ˆμŠ΅λ‹ˆλ‹€. λ‹€μŒκ³Ό 같이 파일 쀑 ν•˜λ‚˜μ—μ„œ μœ ν˜•μ„ μ •μ˜ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

interface Map<K, V> {
    clear(): void;
    delete(key: K): boolean;
    forEach(callbackfn: (value: V, index: K, map: Map<K, V>) => void, thisArg?: any): void;
    get(key: K): V;
    has(key: K): boolean;
    set(key: K, value: V): Map<K, V>;
    size: number;
}
declare var Map: {
    new <K, V>(): Map<K, V>;
    prototype: Map<any, any>;
}
interface Set<T> {
    add(value: T): Set<T>;
    clear(): void;
    delete(value: T): boolean;
    forEach(callbackfn: (value: T, index: T, set: Set<T>) => void, thisArg?: any): void;
    has(value: T): boolean;
    size: number;
}
declare var Set: {
    new <T>(): Set<T>;
    prototype: Set<any>;
}

λͺ¨λ“  3 λŒ“κΈ€

@LimeStreem 1.5.0- λ² νƒ€μ—μ„œ λΌμ΄λΈŒλŸ¬λ¦¬μ—μ„œ 일뢀 IE νŠΉμ • μœ ν˜•μ„ μ œκ±°ν–ˆμŠ΅λ‹ˆλ‹€. λ‹€μŒκ³Ό 같이 파일 쀑 ν•˜λ‚˜μ—μ„œ μœ ν˜•μ„ μ •μ˜ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

interface Map<K, V> {
    clear(): void;
    delete(key: K): boolean;
    forEach(callbackfn: (value: V, index: K, map: Map<K, V>) => void, thisArg?: any): void;
    get(key: K): V;
    has(key: K): boolean;
    set(key: K, value: V): Map<K, V>;
    size: number;
}
declare var Map: {
    new <K, V>(): Map<K, V>;
    prototype: Map<any, any>;
}
interface Set<T> {
    add(value: T): Set<T>;
    clear(): void;
    delete(value: T): boolean;
    forEach(callbackfn: (value: T, index: T, set: Set<T>) => void, thisArg?: any): void;
    has(value: T): boolean;
    size: number;
}
declare var Set: {
    new <T>(): Set<T>;
    prototype: Set<any>;
}

μ™€μš°, 이 μ½”λ“œ 쑰각을 μž‘μ„±ν•΄μ£Όμ…”μ„œ κ°μ‚¬ν•©λ‹ˆλ‹€! :μ›ƒμŒ:
이 λ¬Έμ œκ°€ λ§Žμ€ typescript μ‚¬μš©μžμ—κ²Œ 도움이 λ˜μ—ˆμœΌλ©΄ ν•©λ‹ˆλ‹€!

declare class WeakMap< Key , Value > {
    delete( key : Key ) : boolean
    get( key : Key ) : Value
    has( key : Key ) : boolean
    set( key : Key , value : Value ) : Map< Key , Value >
}

declare class Map< Key , Value > {
    clear(): void
    delete( key : Key ) : boolean
    forEach< Context = any >( handler : ( this : Context , value : Value , key : Key , map : Map< Key , Value > ) => void , context? : Context ) : void
    get( key : Key ) : Value
    has( key : Key ) : boolean
    set( key : Key , value : Value ) : Map< Key , Value >
    size : number
}

declare class Set< Value > {
    add( value : Value ) : Set< Value >
    clear() : void
    delete( value : Value ) : boolean
    forEach< Context = any >( handler : ( this : Context , value : Value , key : Value , map : Set< Value > ) => void , context? : Context ) : void
    has( value : Value ) : boolean
    size : number
}
이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰