【发布时间】:2016-11-07 12:06:24
【问题描述】:
在我的 Node.js / Express 应用程序中,我已经拥有 Headers.ts 文件很长一段时间了,其中包含以下内容:
type HttpHeader = 'X-My-Header' | 'X-My-Other-Header' | 'X-Another';
declare module 'express-serve-static-core' {
import * as http from 'http';
interface Request extends http.IncomingMessage, Express.Request {
header(name: HttpHeader): string | undefined;
}
}
它曾经编译得很好,但是,在最近的rm -rf node_modules 和npm install 再次之后,我遇到了很多类似的错误
error TS2339: Property 'get' does not exist on type 'Request'.
error TS2339: Property 'end' does not exist on type 'Response'.
似乎核心问题是node_modules/@types/express/index.d.ts 将import * as core from "express-serve-static-core" 解析为我的小增强并完全跳过加载真实的东西。我不知道为什么,因为我确实正确安装了一个文件夹 node_modules/@types/express-serve-static-core。
会是什么?
【问题讨论】:
-
您使用的是什么打字稿版本?您使用的语法似乎不合法(您通常不能在模块扩充中进行导入)。你在任何地方导入
express-serve-static-core吗? -
一些关于如何导入/使用
Request类型的示例也会有所帮助。
标签: typescript