Mam problemy z silnym wpisywaniem obiektów Map
za pomocą typescript 1.8.10
. Oto fragment z core-js
zdefiniowanie interfejsu mapy:TypeScript Map: jak używać silnych typów?
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;
}
Chcę utworzyć mapę, która używa klawiszy ciągów i zawsze tylko przechowuje wartości z kształtem {name:string,price:number}
. Próbowałem deklarowania mojego obiektu z:
let oMap:Map<string,{name:string,price:number}> = new Map();
Jednak kompilator zgłasza błąd TS2322: Type 'Map<{}, {}>' is not assignable to type 'Map<string, { name: string; price: number; }>'
. Czy istnieje sposób na wykorzystanie silnego pisania podczas używania obiektów maszynowych ES6 Map
w maszynopisie?
myślę, że lepiej aby zdefiniować interfejs dla {nazwa: ciąg znaków, cena: numer} – alexeibs
Zwykle robiłbym to. Nie pomogłoby mi tutaj: błąd został wywołany, ponieważ nie było typu na prawym znaku przydziału (obok "nowej mapy"). – BeetleJuice