断言已定义变量

时间:2019-04-15 10:14:25

标签: angular typescript

我有时不得不处理定义如下的对象:

value: T | undefined

在代码的某个时刻,我知道value不能为undefined,而我只是想将其作为T。为此,我通常创建  一种方法:

public static getDefinedValue<T>(value: T | undefined): T {
  if (value) {
    return value;
  } else {
    throw Error('Yolo')
  }
}

但是我觉得我的需求很普遍。是否已经有内置功能或更简洁的语法?

1 个答案:

答案 0 :(得分:0)

您知道它们已定义,您可以使用as直接输入。称为类型断言

它看起来像(value as T),您可以将其“投射”到所需的类型。

您可以在此处查看其工作方式:

https://www.typescriptlang.org/docs/handbook/basic-types.html

如果您仍要确保未定义该值,则可以执行以下简单操作:

if (value)  { (values as T)....}