【问题标题】: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
但这是个人喜好,明确声明返回类型也有其好处。这取决于你。