gpt4 book ai didi

javascript - 有没有办法将 "signal"类型从早期的空/未定义检查缩小到 TypeScript?

转载 作者:行者123 更新时间:2023-11-30 23:54:30 24 4
gpt4 key购买 nike

我正在使用 dotenv 将一些环境变量加载到我的 Node & Express 应用程序中,其中许多值对于应用程序的功能至关重要,因此在执行任何操作之前,我会验证这些变量以确保它们包含在内并且它们具有正确的类型,否则我会抛出错误并停止服务器启动。

我现在需要使用这些变量,但 TypeScript 无法识别我已经缩小了类型范围,因此它阻止我执行诸如 process.env.test.includes 之类的操作(没有可选的链接或附近的类型断言)说对象可能为空或未定义(我启用了严格模式)。我知道在某些情况下,如果我进行类型检查,它会识别出我已经缩小了类型,但我猜测这距离代码不够近,无法识别这一点。有什么方法可以表明我已经从 string | 缩小了类型范围空 |例如,将 undefined 改为 string,或者我是否必须继续使用可选链接运算符?

最佳答案

您可以使用non-null assertion operator !告诉 TypeScript 你更了解,它永远不应该为 null/未定义:

process!.env!.test!.includes

这当然是假设链中的任何键都可以返回 null/undefined,但您可能不需要在每个访问器上使用该运算符。

关于javascript - 有没有办法将 "signal"类型从早期的空/未定义检查缩小到 TypeScript?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61149771/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com