Typescript lint, как правильно объявить любой тип с "no-any": true - PullRequest
0 голосов
/ 18 марта 2019

Я хочу использовать gts в моем проекте.

У него есть правило в tslint.json "no-any": true. Это правило полностью запрещает использование ключевого слова any в любом месте кода. Каков общий случай использования этой функции, может принимать любой тип. Я знаю, что могу переопределить это правило. Но мне интересно, как бы кто-то справился с ситуацией, когда, например, Функция, выполняющая sql, принимает аргументы разных типов. Есть ли лучшие практики для решения этого дела?

Единственное, что приходит в голову, это указать все типы примитивов через |

param: string| number| Date;

Но что, если я обертываю некоторый внешний код, например mysql в моей функции, которая уже принимает any[].

1 Ответ

2 голосов
/ 19 марта 2019

Я думаю, что большинство случаев должно быть хорошо охвачено unknown.unknown является более безопасной альтернативой any.Основная идея заключается в том, что вы можете назначить что-либо для unknown точно так же, как any, но в отличие от any вы не сможете многое сделать с unknown без явных проверок или утверждений типа, что, вероятно, вам и нужно (см. здесь для деталей).

Вы все еще можете столкнуться с угловыми случаями, когда unknown не может просто заменить any (на ум приходят параметры с функциональными ограничениями под strictFunctionTypes), но в целом это должно работать.

...