typescript - 如何使用严格的 args 类型正确覆盖 Express 方法?
问题描述
我想对可以传递给 express' 的数据设置限制res.send()
。现在我有以下类型声明:
interface ServerResponseData {
data?: object | object[];
errors: string[];
}
declare module 'express-serve-static-core' {
interface Request {
user?: {
isAdmin: boolean;
token: string;
};
}
interface Response {
/**
* Overridden Express.Response method.
* Sends only strictly typed data.
* @param {string} body.text Short description of request results.
* @param {object} [body.data] Data to send.
*/
send(body: ServerResponseData): Response;
}
}
它确实适用于覆盖Request
,但不适用于响应。TSlint 说send
已经声明了。在路由处理程序中,它使用“旧”类型,没有给定限制。
我应该怎么做才能让它工作?谢谢。
解决方案
推荐阅读
- react-native - 我如何从 react-native 中的另一个 js 文件访问变量
- java - 在 TornadoFX(JavaFX 扩展)中“扁平化”一个 ObjectProperty 的 ObjectProperty 很热?
- html - 使 div 高度适合背景图像高度(具有视差效果)
- ios - Swift4 - 将 cookie 加载到 WKWebView
- node.js - Firebase云功能node.js代码不返回数据
- swift - 应用程序关闭时通知 willPresent 不会调用
- python - Python:乌龟不能两次调用函数
- ruby - MacOS 无法安装 Jekyll Gem
- android - 由于 Android 上的 lint 类路径错误,Gradle 构建失败
- c# - 如何正确添加 SQL Server 连接字符串作为 asp.net 核心的 systemd 环境变量?