TypeScript函数类型声明中void可选参数类型含义解析
解读TypeGraphQL中的ReturnTypeFunc类型
整体类型解读
export declare type ReturnTypeFunc = (returns?: void) => ReturnTypeFuncValue; 这段代码定义了一个函数类型别名ReturnTypeFunc,它描述的函数具备以下特征:
- 可接收一个可选参数
- 函数返回值类型为
ReturnTypeFuncValue(TypeGraphQL内部定义的类型,用于承载GraphQL字段返回类型的元数据)
详解(returns?: void)
这部分是函数的参数签名,拆解细节如下:
returns:仅为参数名称,语义上关联“返回类型”的用途,实际在函数实现或调用过程中通常不会用到该参数的值?::标记该参数为可选参数,调用符合此类型的函数时,可以选择不传该参数void:是该参数的类型。在TypeScript中,void类型的参数仅能接收undefined或被省略。此处用void是一种语义化设计,明确表示这个参数不需要传递有实际意义的值,仅作为语法占位存在——TypeGraphQL的装饰器(如@Query)中,这类函数的核心作用是返回要定义的GraphQL类型,参数本身无实际业务用途。
实际使用示例
符合该类型的常见写法有两种:
- 省略可选参数(最常用):
@Query(() => User) async getUser(): Promise<User> { // 业务逻辑实现 }
- 显式写出参数(参数不会被使用):
@Query((returns) => User) async getUser(): Promise<User> { // 业务逻辑实现 }
两种写法均完全符合ReturnTypeFunc的类型要求。
内容的提问来源于stack exchange,提问作者yuranos
相关产品推荐
相关产品推荐

