Почему нет автозаполнения, хотя подсказка показывает возможные значения с помощью TypeScript? - PullRequest
0 голосов
/ 20 апреля 2020

У меня есть интерфейс и класс с конструктором, который получает свойство, основанное на заданном типе generi c:

export enum AccountTypesEnum {
    Accounts= "Accounts",
}

export interface AccountTypes {
    [AccountTypesEnum.Accounts]:  "/foo" | "/bar" | "/baz",
}

class Account<T extends AccountTypesEnum> extends Resource {
    public constructor(endpoint: AccountTypes[T]) {
    // ...ommited

При создании экземпляра класса Account я ожидаю, что редактор покажет мне возможные endpoint значения, если я передам AccountTypesEnum.Accounts как его родовой c тип:

new Account<AccountTypesEnum.Accounts>(/* AUTOCOMPLETE_HERE: /foo, /bar or /baz */ )
  • Если я наведу курсор мыши на Account, я вижу, что возможные значения для аргумента действительно один из тех, что я указал.
  • Если я введу что-либо, отличное от трех значений, IntelliJ покажет мне ошибку TS
  • Если я попытаюсь использовать функцию автозаполнения, она WON'T покажет мне одно из трех возможных значений.

Я не пробовал в других редакторах, кроме IntelliJ, поэтому я не уверен, что это TypeScript или IDE.

Ответы [ 3 ]

0 голосов
/ 20 апреля 2020

отлично работает для меня в Webstorm 2020.1:

enter image description here

Если проблема не устраняется при аннулировании кэшей ( Файл> Неправильные кэши, Invaalidate и перезагрузите ), отправьте заявку в службу поддержки Jetbrains

0 голосов
/ 21 апреля 2020

Проблема была решена путем воссоздания папки .idea. Я закрыл веб-шторм, удалил папку .idea и снова открыл веб-шторм.

0 голосов
/ 20 апреля 2020

ваш код верен.

если вы видите ошибку, то языковая служба TS работает как положено.

протестировано в веб-шторме 2020.1 с TS 3.8.3; попробуйте обновить вашу IDE.

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