Tôi gặp sự cố khi nhập mạnh đối tượng Map
của mình với typescript 1.8.10
. Dưới đây là một đoạn trích từ core-js
định giao diện bản đồ:Bản đồ TypeScript: cách sử dụng các loại mạnh?
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;
}
Tôi muốn tạo ra một bản đồ có sử dụng phím chuỗi và duy nhất từng lưu trữ giá trị với hình dạng {name:string,price:number}
. Tôi đã cố gắng khai báo đối tượng của mình với:
let oMap:Map<string,{name:string,price:number}> = new Map();
Tuy nhiên, trình biên dịch phát ra lỗi TS2322: Type 'Map<{}, {}>' is not assignable to type 'Map<string, { name: string; price: number; }>'
. Có cách nào để tận dụng lợi thế của việc gõ mạnh khi sử dụng các đối tượng ES6 Map
trong bản đánh máy?
Tôi nghĩ rằng nó tốt hơn để xác định một giao diện cho {name: string, price: number} – alexeibs
Thông thường tôi sẽ làm như vậy. Nó sẽ không giúp tôi ở đây: lỗi đã được kích hoạt vì không có loại nào trên dấu hiệu đúng của nhiệm vụ (bên cạnh 'Bản đồ mới'). – BeetleJuice