Typescript 有人能告诉我返回泛型类型T和未定义是否可以接受吗?

Typescript 有人能告诉我返回泛型类型T和未定义是否可以接受吗?,typescript,generics,types,Typescript,Generics,Types,可以像:T | undefined这样返回泛型吗 type PartialSingleParam=(param?:T)=>T |未定义; 导出常量getId:PartialSingleParam=href=>href?.substr(href.lastIndexOf('/')+1); export const getNumber:PartialSingleParam=data=>data; Typescript不会判断什么是“可接受的”,什么是不可接受的 Typescript只是在编译时确保在函

可以像:T | undefined这样返回泛型吗

type PartialSingleParam=(param?:T)=>T |未定义;
导出常量getId:PartialSingleParam=href=>href?.substr(href.lastIndexOf('/')+1);
export const getNumber:PartialSingleParam=data=>data;

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

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

如果您告诉Typescript,您的函数需要一个泛型类型的输入,并且将返回一个未定义或泛型类型的内容,那么Typescript将进行检查以确保情况属实


另一方面,看看你的例子,我可能认为它有点太明确了。你可以这样做:

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

但这是个人偏好,明确声明返回类型也有其好处。所以由你决定