打字稿中的方法返回类型为null

Posted

技术标签:

【中文标题】打字稿中的方法返回类型为null【英文标题】:Method return type with null in typescript 【发布时间】: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 毕竟是一个可以为空的对象 【参考方案1】:

视情况而定。

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

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

private parseProperty(): Property | null 

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

public property: Property | null;

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

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

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

【讨论】:

以上是关于打字稿中的方法返回类型为null的主要内容,如果未能解决你的问题,请参考以下文章

!对象方法后打字稿中的运算符

如何创建一个从打字稿中的类中提取所有方法的类型?

如何在打字稿中声明成功/失败返回类型

如何覆盖打字稿中的属性?

打字稿中的“三个点”是啥意思?

如何将方法的泛型类型限制为打字稿中的对象?