Как исправить тип typeof class не имеет индекса? - PullRequest
0 голосов
/ 06 мая 2020

У меня есть класс машинописного текста с рядом методов c

 class MyClass{
   static Method01(){}
   static Method02(){}
   ...
   static Method0N(){}
 }

В каком-то другом классе я получаю параметр «действие» и вызываю:

 try{
    MyClass[action]()
 }catch(error){
     console.log(error)
 }

Linter предупреждает меня, говоря:

 Element implicitly has an 'any' type because type 'typeof MyClass' has no index signature.ts

Как я могу пропустить это предупреждение?

1 Ответ

0 голосов
/ 06 мая 2020

Вам следует как-то сузить переменную action до строкового литерала (stati c имя метода). Как этого добиться, зависит от вашего варианта использования.

const action = 'Method01';
// Or
let action = 'Method02' as const;
// Or
type Action = keyof typeof MyClass;
let action: Action = 'Method0N';

MyClass[action] // no warning
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...