【问题标题】:Can someone tell me if this is acceptable returning generic type T and undefined? [closed]有人可以告诉我返回泛型类型 T 和未定义是否可以接受? [关闭]
【发布时间】:2021-02-06 01:23:07
【问题描述】:

是否可以返回泛型,例如:T |未定义?

type PartialSingleParam<T> = (param?: T) => T | undefined;

export const getId:PartialSingleParam<string> = href => href?.substr(href.lastIndexOf('/') + 1);

export const getNumber:PartialSingleParam<number> = data => data;

【问题讨论】:

    标签: typescript generics types


    【解决方案1】:

    Typescript 不会判断什么是“可接受的”,什么不是。

    Typescript 只是为了确保在编译时在函数/对象之间传递的参数符合预期。

    如果你告诉 Typescript 你的函数需要一个泛型类型的输入,并且会返回一个未定义或泛型类型的东西,那么 typescript 将检查以确保是这种情况。


    在旁注中,看看你的例子,我可能认为它有点太明确了。你可以这样做:

    export const getId = (href?: string) => href?.substr(href.lastIndexOf('/') + 1)
    export const getNumber = (data?: number) => data
    
    

    但这是个人喜好,明确声明返回类型也有其好处。这取决于你。

    【讨论】:

      猜你喜欢
      • 2023-04-10
      • 1970-01-01
      • 2020-11-18
      • 2011-08-13
      • 2017-07-27
      • 2011-09-15
      • 2022-01-05
      • 2012-09-16
      • 1970-01-01
      相关资源
      最近更新 更多