я следующий код в машинописном:машинопись + ES6 Карта + Index сигнатура типа объекта неявно имеет «любой» тип
export class Config
{
private options = new Map<string, string>();
constructor() {
}
public getOption(name: string): string {
return this.options[name]; // <-- This line causes the error.
}
}
И компилятор дает мне эту ошибку:
Error:(10, 16) TS7017: Index signature of object type implicitly has an 'any' type.
Карта «возможна» через es6-shim. Я не совсем уверен, что здесь происходит. На самом деле эта карта меня немного смущает. Предполагается, что карта должна появиться из es6-shim, которая должна реализовать функциональность es6. Но es6 не имеет статических типов, не так ли? Итак, почему Map ожидает, что типы ключей/значений будут использоваться как общие аргументы? Я видел, как некоторые люди добавили флаг «noImplicitAny», но я хочу решить проблему, а не игнорировать ее.
спасибо.
Этот ответ неправильный. В карте не указывается тип возврата индексной подписи «быть в безопасности», он вообще не указывает на подпись подписи *, потому что объекты Map не работают таким образом (вместо этого они имеют методы get/set). –