gpt4 book ai didi

javascript - res.body 的 TypeScript 类型注解

转载 作者:搜寻专家 更新时间:2023-10-30 21:19:37 24 4
gpt4 key购买 nike

我正在为我的应用 node.js express 使用 typescript 。我想说 res.body 是 personne 类型。我试过这个:

router.post('/',(req: Request, res: Response) => {
const defunt:PersoneModel = res.(<PersoneModel>body);
}

我有这个模型:

export type PersoneModel = mongoose.Document & {
nom: String,
prenom: String,
}

你能帮帮我吗?

谢谢。

最佳答案

更新:

@types/express@4.17.2 开始,Request 类型使用泛型。

https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/express/index.d.ts#L107

interface Request<P extends core.Params = core.ParamsDictionary, ResBody = any, ReqBody = any, ReqQuery = core.Query> extends core.Request<P, ResBody, ReqBody, ReqQuery> { }

您可以像这样将 req.body 的类型设置为 PersoneModel:

import { Request, Response } from 'express';

router.post('/',(req: Request<{}, {}, PersoneModel>, res: Response) => {
// req.body is now PersoneModel
}

对于@types/express@4.17.1及以下

遇到类似的问题,我用泛型解决了:

import { Request, Response } from 'express';

interface PersoneModel extends mongoose.Document {
nom: String,
prenom: String,
}

interface CustomRequest<T> extends Request {
body: T
}

router.post('/',(req: CustomRequest<PersoneModel>, res: Response) => {
// req.body is now PersoneModel
}

关于javascript - res.body 的 TypeScript 类型注解,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48027563/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com