Gram na Maszynistce i konwertuję do małej biblioteki na nią z Javascript. W jednym obszarze kodu znajdowało się statycznie zdefiniowane mapowanie przyjaznej nazwy klucza do ich kodu. Oryginalny kod wyglądał następująco:Jak zdefiniować słownik słowników liczbowych w Skrypcie?
keys: { "Backspace": 8, "Tab": 9, "Enter": 13, ....etc.. };
I określonych to w maszynie za pomocą:
static keys: { [name: string]: number; } = { "Backspace": 8, "Tab": 9, "Enter": 13, ... etc.. };
ten wydaje się działać dobrze, jednak inna część kodu wykorzystuje odwrotny mapowanie:
chars: {8:"Backspace",9:"Tab",13:"Enter", ...etc... };
Więc próbowałem zrobić ten sam typ definicji w maszynopisie, który wcześniej zrobiłem:
chars: { [code: number]: string; } = { 8: "Backspace", 9: "Tab", 13: "Enter", ...etc.. };
To nie skompilować z powodu następującego błędu:
Cannot convert '{ 0: string; 1: string; 2: string; 4: string; 8: string; 9: string; : string; }' to '{ [name: number]: string; }': Index signatures of types '{ 0: string; 1: string; 2: string; 4: string; 8: string; 9: string; : string; }' and '{ [name: number]: string; }' are incompatible
Jak mogę określić to mapowanie na maszynie?