如何处理在Typescript中可以为null的对象?

时间:2019-01-31 13:28:35

标签: typescript

我希望函数返回一个对象或null。

这是我今天的处理方式:

export interface MyObject {
    id: string
}

function test(id) : MyObject | null {
    if (!id) {
        return null;
    }

    return {
        id: id
    }
}

这是最佳做法吗?

我宁愿使该接口可为空,而不是返回MyObject | null

但是我不知道这是否可能。

3 个答案:

答案 0 :(得分:1)

在Typescript中,除非启用了严格的null检查,否则null和undefined是所有类型的域的一部分。我认为,显式声明空值比在所有位置隐式声明空值是一种更好的做法,但是在现实世界中,与不适合它的库代码进行互操作时,启用严格模式通常是不现实的。

答案 1 :(得分:1)

  

这是最佳做法吗?

很好。每个人都这样做(或使用undefined)。

  

我宁愿使该接口可为空,而不是返回MyObject | null

您可以这样做:

export type NullableObject = null | {
  id: string
}

这不常见,但也很好。

答案 2 :(得分:0)

这也应该处理空值情况(如果--strictFunctionTypes编译器选项已关闭)

GetSection