Próba dostępu do właściwości dyktowania z notacją kropkową powoduje, że Maszynopis narzeka. Specyfikacja języka, 4.10, stwierdza:maszynopis: właściwość dostępu z notacją kropkową przy użyciu "słownika" typu
ObjExpr [ IndexExpr]
... if ObjExpr ’s apparent type has a string index signature and IndexExpr is of type Any, the String or Number primitive type, or an enum type, the property access is of the type of that index signature.
Używam:
interface MapStringToFunction {
[index: string]: Function;
}
var dict: MapStringToFunction = {};
dict.say =() => 'hi';
dict.say();
MapStringToFunction ma podpisu indeksu żądło i say
jest typu String, więc powinno być dozwolone? Ale oczywiste nie jest. Jaki jest mój błąd i jak mogę go zmienić na kod, aby móc wpisywać właściwości dyktowania i dostępu z notacją kropkową?
Takie zachowanie mnie dziwi, jak również. Nawet po przeczytaniu odpowiedzi czuję, że powinniśmy móc odwoływać się do właściwości interfejsów z notacją kropkową. – Jopela