假设我想使用类似express的东西。所以我添加
/// <reference path=".../express.d.ts" />
import express = require("express");
然后可以使用ExpressServerRequest之类的类型。
到目前为止还不错。但现在我想使用,例如,connect-flashjavascript模块。这为ExpressServerRequest添加了一个额外的闪存功能。我正在努力想办法定义connect-flash.d.ts,这样如果我导入了connect-flash模块,req.flash()就会在ExpressServerRequest的实例上定义,而不是在其他情况下定义。这种行为可以在TypeScript中进行captued吗?
如果您正在扩展的项是一个接口,那么它们在TypeScript中是打开的,所以您可以添加额外的内容,比如:
interface ExpressServerRequest {
myAdditionalThing(): void;
}
有很多方法可以声明几乎任何东西,所以如果这不是您的案例的诀窍,只需发布退出的ExpressServerRequest,我将更新示例。我在确定性类型上检查的express.d.ts版本有ExpressServerRequest作为接口。