Тип 'string' нельзя назначить типу '' get '|"сообщение"' - PullRequest
1 голос
/ 09 апреля 2019

Как можно преобразовать значение из string в строковый литерал типа с помощью jsdoc?

Когда я сделаю это:

export default class extends Vue {
  Request (...args) {
    /** @type {'get'|'post'} */
    let method = (args.length == 2 ? args[0] : 'get').toLowerCase()
  }
}

Iполучить сообщение об ошибке:

Тип 'строка' нельзя назначить типу '' get '|"post" '.

Можно ли это сделать без использования TypeScript?

1 Ответ

1 голос
/ 09 апреля 2019

TD; LR

В jsDoc нет поддержки для проверки содержимого строки.

Более длинная версия

jsDoc хорошо справляется с ограничением типа переменной, и если вы передаете объект, вы также можете проверить типыего атрибуты используют комбинацию @typedef и @param (для получения дополнительной информации см. здесь ).Таким образом, вы можете использовать его, чтобы проверить, является ли аргумент примитивного типа или является ли он объектом - если у него есть определенные свойства (указанных типов), вот и все.

Если вы хотите больше, у вас либо будетреализовать это самостоятельно или использовать TS.

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