Есть ли способ «сигнализировать» о сужении типа к TypeScript из более ранней проверки null / undefined? - PullRequest
0 голосов
/ 11 апреля 2020

Я загружаю несколько переменных окружения в свое приложение Node & Express, используя dotenv, и многие из этих значений критически важны для функции приложения, поэтому перед выполнением каких-либо действий я проверяю эти переменные, чтобы убедиться, что они включены и что они имеют правильный тип, в противном случае я выдаю ошибку и не могу запустить сервер.

Теперь мне нужно использовать эти переменные в конце строки, но TypeScript не распознает, что я сузил типы, так что запрещает мне делать такие вещи, как process.env.test.includes (без необязательного связывания или подтверждения типа рядом), говоря Object is possibly null or undefined (у меня включен строгий режим). Я знаю, что в некоторых случаях он распознает, что я сузил тип, если я делаю проверки типов, но я предполагаю, что этого недостаточно для того, чтобы код мог это понять. Можно ли как-то сигнализировать о том, что я уже сузил тип с string | null | undefined до просто string, например, или я должен продолжать использовать дополнительный оператор сцепления?

1 Ответ

2 голосов
/ 11 апреля 2020

Вы можете использовать оператор ненулевого подтверждения !, чтобы сообщить TypeScript, что вы знаете лучше, что он никогда не должен быть нулевым / неопределенным:

process!.env!.test!.includes

Это Конечно, предполагая, что любой из ключей в цепочке может возвращать null / undefined, но вам, вероятно, не нужно использовать оператор для каждого метода доступа.

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