Typescript: Peta, Setel ... dalam target ES5

Dibuat pada 28 Mei 2015  ·  3Komentar  ·  Sumber: microsoft/TypeScript

Setelah memperbarui compiler TypeScript dari versi 1.4.1 ke 1.5.0 beta, kode sumber yang disertakan dalam proyek saya menjadi membuat log kesalahan seperti 'Peta tidak ditemukan'.
Jadi, saya meneliti masalah ini, dan saya mencapai kesimpulan. Lib.d.ts menjadi tidak mengandung definisi Peta dan Set kecuali ES6 dipilih di tsconfig.json.

Sebenarnya Map and Set adalah spesifikasi dari ES6. Wajar jika kita tidak dapat menggunakan Map dan Set dalam proyek yang menargetkan ES5 atau lebih rendah.
Tapi kita bisa menggunakan Map dan Set bahkan jika saya memilih ES5 sebagai target sebelum TypeScript 1.4.1.
Saya tahu bahwa membuatnya diaktifkan untuk menggunakan Peta dan Set dalam proyek yang dibuat untuk ES5 mengandung risiko.
Karena ada beberapa browser yang tidak mendukung Map and Set.

Namun, saya pikir lebih baik membuat beberapa properti konfigurasi yaitu untuk beralih menggunakan definisi ini atau tidak. Tidakkah menurutmu begitu?

Question

Komentar yang paling membantu

@LimeStreem kami menghapus beberapa tipe khusus IE dari perpustakaan di 1.5.0-beta. anda bisa menentukan jenis di salah satu file Anda seperti:

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>;
}

Semua 3 komentar

@LimeStreem kami menghapus beberapa tipe khusus IE dari perpustakaan di 1.5.0-beta. anda bisa menentukan jenis di salah satu file Anda seperti:

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>;
}

Wow, saya menghargai Anda untuk menulis potongan kode ini! :tertawa:
Saya ingin tahu masalah ini akan membantu banyak pengguna 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
}
Apakah halaman ini membantu?
0 / 5 - 0 peringkat

Masalah terkait

siddjain picture siddjain  ·  3Komentar

uber5001 picture uber5001  ·  3Komentar

weswigham picture weswigham  ·  3Komentar

MartynasZilinskas picture MartynasZilinskas  ·  3Komentar

zhuravlikjb picture zhuravlikjb  ·  3Komentar