如何扩展 express$Request 的流类型?
How can I extend a flow type for express$Request?
我正在使用 flow-typed
,所以它有一个 express
定义。在我的代码中,我有:
isPayloadSignatureValid(req /*: express$Request */ ) {
const rawBodyPayload = Buffer.from(req.rawBody).toString('utf8')
但是流量抱怨说:
Cannot get req.rawBody because property rawBody is missing in express$Request [1].
在我的 interfaces/express.js
中,我有:
// @flow
/*::
type express$Request = exports.Request & {
rawBody: string
}
export type { express$Request };
*/
在我的 .flowconfig
中,我有:
[include]
./interfaces/.*
那么为什么扩展 express$Request
没有 rawBody
属性?
谢谢
当您实际使用 express 时,您不会从 interfaces/express.js
获取类型。您需要自己导入并注入。通常在这种情况下,您只想直接从流类型中修改 express libdef。另外你应该避免在这里使用交集类型,你应该传播对象类型(...
)。
我正在使用 flow-typed
,所以它有一个 express
定义。在我的代码中,我有:
isPayloadSignatureValid(req /*: express$Request */ ) {
const rawBodyPayload = Buffer.from(req.rawBody).toString('utf8')
但是流量抱怨说:
Cannot get req.rawBody because property rawBody is missing in express$Request [1].
在我的 interfaces/express.js
中,我有:
// @flow
/*::
type express$Request = exports.Request & {
rawBody: string
}
export type { express$Request };
*/
在我的 .flowconfig
中,我有:
[include]
./interfaces/.*
那么为什么扩展 express$Request
没有 rawBody
属性?
谢谢
当您实际使用 express 时,您不会从 interfaces/express.js
获取类型。您需要自己导入并注入。通常在这种情况下,您只想直接从流类型中修改 express libdef。另外你应该避免在这里使用交集类型,你应该传播对象类型(...
)。