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