angular - 断言变量已定义
问题描述
我有时必须处理定义如下的对象:
value: T | undefined
在代码中的某个时刻,我知道这value
不可能undefined
,我只想将它作为T
. 为此,我通常创建这种方法:
public static getDefinedValue<T>(value: T | undefined): T {
if (value) {
return value;
} else {
throw Error('Yolo')
}
}
但我觉得我的需要是通用的。是否有内置函数或更简洁的语法已经可以做到这一点?
解决方案
如您所知,它们已定义,您可以使用as
直接键入它。它被称为类型断言。
它看起来像(value as T)
,您可以将其“铸造”为您想要的类型。
你可以在这里查看它是如何工作的:
https://www.typescriptlang.org/docs/handbook/basic-types.html
如果您仍然想确保未定义该值,您可以执行以下操作:
if (value) { (values as T)....}
推荐阅读
- r - 如何设置 install_keras() 的 virtualenv?
- javascript - JSON 解析错误:意外的标识符“be”
- mysql - 如何使用逗号拆分列的值并在 MySQL 中显示在行中
- java - Javers SpringBoot 集成 QueryBuilder byInstanceId 返回空结果
- amazon-s3 - Terraform - 在 S3 存储桶上启用请求指标
- python - 如何从python中的类嵌套字典中创建一个表?
- java - 如何在 Liberty 配置文件中使用 MicroProfile FaultTolerance
- reactjs - 任何人都知道为什么我在尝试设置加载状态时不断收到此错误
- google-app-engine - 使用 cloudbuild.yaml 与手动执行“gcloud app delpoy”的云构建触发器
- fabricjs - Fabricjs 设置按钮以在移动 x 轴上切换锁定