下面的代码显示了可能用于注册用户的功能。请求体接受多个嵌套参数,如firstName、lastName等。如何使用tsdoc充分记录这些嵌套参数?
/**
* @remarks
* This method creates a user.
*
* @param req - The request object
* @param res - The response object
*
* @returns Created user object showing the created user
* ```
*{
"message": {
"_id": "5ef3249f6a01c1006e091f92",
"id": "1u_RGoYwV",
"firstName": "test",
"lastName": "User",
"password": "$2a$10$ZQf23Qx910iJLzHO65BOO.RShufiU.YAT/IXnGQwreQ0rdoElrSQG",
"email": "test@gmail.com",
"avatarUrl": "https://www.image.com/cat.jpg",
* }
* }
* ```
*
*/
async create(req: Request, res: Response) {
let user = new UserModel(this.db);
const {
firstName,
lastName,
email,
password,
currentOrganization,
avatarUrl
} = req.body;
const hashedPassword = await PasswordHelper.hashPassword(password);
user.setFirstName(firstName);
user.setLastName(lastName);
user.setEmail(email);
user.setPassword(hashedPassword);
user.setAvatarUrl(avatarUrl);
user.setCurrentOrganization(currentOrganization);
await user.save();
const users = user.get();
res.status(200).send({ message: users });
}发布于 2020-06-24 18:35:28
声明一个接口,记录其中的属性,并在函数中引用该接口。
请注意,交叉引用(例如,使用@see and @link)在编辑器中似乎通常不受很好的支持。尽管只有名字可能会帮助人们找到界面。
发布于 2020-06-24 18:56:56
根据用法判断,我假设您的Request和Response表示的不是原生Request和Response类型,而是由Express提供的类型。
express.Request<P>类型接受类型参数P。此类型表示请求中提供的参数。
提供(和记录)它们的最简单方法是创建一个接口:
interface Payload {
/**
* First name of the user.
*/
firstName: string;
lastName: string;
email: string;
password: string;
currentOrganization: string;
avatarUrl: string;
[index: string]: string;
}将该接口提供给您方法:
async create(req: Request<Payload>, res: Response) {提供的参数可以在req.params下访问--它们也有内联文档!

https://stackoverflow.com/questions/62552817
复制相似问题