【问题标题】:Best practices for returning a variable Omit return value from function?返回变量的最佳实践 忽略函数的返回值?
【发布时间】:2021-11-14 09:41:46
【问题描述】:

我有一个函数,它最初的返回类型是

Promise<Record<
ReturnType,
Omit<SomeInterface, 'key1' | 'key2'>>>

即以前我们知道key2 总是会被省略。

现在,该函数应该返回相同的类型,但 key2 可能会或可能不会被省略。有没有办法做到这一点,例如

Promise<Record<
ReturnType,
Omit<SomeInterface, 'key1' | 'key2'>> |
Record<
ReturnType,
Omit<SomeInterface, 'key1'>>>

【问题讨论】:

    标签: typescript types return


    【解决方案1】:

    试试这个:

    type OptionalProperty<O, K extends keyof O> = Pick<Partial<O>, K> & Omit<O, K>;
    type T = Promise<Record<ReturnType, OptionalProperty<Omit<SomeInterface, 'key1'>, 'key2'>>>;
    

    【讨论】:

      【解决方案2】:

      Omit之后,您可以将其作为可选属性添加回来。

      类似:

      Promise<
        Record<
          ReturnType,
          Omit<SomeInterface, 'key1' | 'key2'> & { key2?: SomeInterface['key2'] }
        >
      >
      

      【讨论】:

        猜你喜欢
        • 2017-07-23
        • 1970-01-01
        • 2012-02-03
        • 1970-01-01
        • 2018-11-01
        • 1970-01-01
        • 2015-09-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多