-
Notifications
You must be signed in to change notification settings - Fork 574
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
官方文档里的swagger用法错误 #3019
Comments
想了下,这里有点问题,这个 T 不应该限定是 class,因为做定义用,只需要参数和返回值做限定,比如 type Res<T> = {
code: number;
message: string;
data: T;
}
function SuccessWrapper<T>(ResourceCls: Type<T>): Type<Res<T>> {
class Result<T> implements Res<T> {
@ApiProperty({ description: '状态码' })
code: number;
@ApiProperty({ description: '消息' })
message: string;
@ApiProperty({
type: ResourceCls,
})
data: T;
}
return Result;
}
class User {
@ApiProperty()
name: string;
@ApiProperty()
id: number;
}
class SuccessUser extends SuccessWrapper<User>(User) {}
@Controller('/api')
class APIController {
@Post('/update_user')
@ApiCreatedResponse({ type: SuccessUser })
async updateUser(@Body() data: SuccessUser) {
const successUser = new SuccessUser();
successUser.code = 200;
successUser.message = 'Success';
successUser.data = {
name: 'Kitty',
id: 1,
};
return successUser;
}
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
https://midwayjs.org/docs/extensions/swagger#泛型返回数据
文档里是这么说的
实际上 data 的类型要改为
data: InstanceType<T>;
才对如果是 T 只能传类型,不能传实例
测试code
The text was updated successfully, but these errors were encountered: