Typescript: تعيين ... في الهدف ES5

تم إنشاؤها على ٢٨ مايو ٢٠١٥  ·  3تعليقات  ·  مصدر: microsoft/TypeScript

بعد تحديث برنامج التحويل البرمجي من الإصدار 1.4.1 إلى الإصدار 1.5.0 بيتا ، أصبحت الكود المصدرية المضمنة في مشروعي تعمل على إنشاء سجل أخطاء مثل "الخريطة غير موجودة".
وهكذا بحثت في هذه المشكلة وتوصلت إلى نتيجة. أصبح lib.d.ts لا يحتوي على تعريفات خريطة وتعيين باستثناء تحديد ES6 في tsconfig.json.

في الواقع ، الخريطة والمجموعة هي مواصفات ES6. من الطبيعي أنه لا يمكننا استخدام Map and Set في المشروع الذي يستهدف ES5 أو أقل.
ولكن يمكننا استخدام Map and Set حتى إذا قمت بتحديد ES5 كهدف قبل الكتابة المطبوعة 1.4.1.
أعلم أن تمكينه لاستخدام Map and Set في المشروع المصمم لـ ES5 ينطوي على مخاطر.
لأن هناك بعض المتصفحات لا تدعم Map and Set.

ومع ذلك ، أعتقد أنه من الأفضل عمل بعض خصائص التكوين التي تستخدم للتبديل لاستخدام هذه التعريفات أم لا. ألا تعتقد ذلك؟

Question

التعليق الأكثر فائدة

LimeStreem أزلنا بعض الأنواع الخاصة بـ IE من المكتبة في الإصدار 1.5.0-beta. يمكنك فقط تحديد النوع في أحد ملفاتك مثل:

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 أزلنا بعض الأنواع الخاصة بـ IE من المكتبة في الإصدار 1.5.0-beta. يمكنك فقط تحديد النوع في أحد ملفاتك مثل:

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

واو ، أنا أقدر لك كتابة مقتطف الشفرة هذا! : يضحك:
أتساءل أن هذه المشكلة ستساعد الكثير من مستخدمي الكتابة المطبوعة!

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 التقييمات