【问题标题】:Method return type with null in typescript打字稿中的方法返回类型为null
【发布时间】:2019-12-06 04:18:16
【问题描述】:

我的问题很简短,我会举个例子。我有一些课:

class A {
  public property: Property;

  constructor(data: any) {
    this.property = this.parseProperty(data)
  }

  private parseProperty(): Property {
    return data.property
      ? {
          name: data.property.name,
          code: data.property.code,
        }
      : null;
  }
}

鉴于上面的例子,我应该添加'| null' 到 parseProperty 方法的返回类型?这样做有什么意义吗?另外,我应该添加|属性声明为空?没有它,它工作得很好。

【问题讨论】:

  • 不,不是; Property 毕竟是一个可以为空的对象

标签: angular typescript object types null


【解决方案1】:

视情况而定。

如果您将 TypeScript 项目配置为使用严格的 null 检查,则 Poperty 类型的值可能不为 null。因此,您的代码只有在使用

时才会编译
public property: Property | null;

private parseProperty(): Property | null {

如果您不这样做,那么这基本上是关于代码的可读性和冗长性的选择问题。您可以选择更详细,但更清楚地了解变量可以是什么

public property: Property | null;

通过阅读该代码,您或您的同事会记住该值可能为 null,并且需要考虑这种情况。

或者您可以决定这是隐含的或过于冗长,并保持原样。

有时,值很明显可能为空。有时,很明显它们不可能为空。有时,它根本不明显,即使没有激活严格的空检查,将其显式化也会有所帮助。

【讨论】:

    猜你喜欢
    • 2018-07-01
    • 2021-05-16
    • 2020-06-29
    • 1970-01-01
    • 2018-01-21
    • 1970-01-01
    • 2021-09-18
    • 2022-01-12
    • 1970-01-01
    相关资源
    最近更新 更多