作为具体示例,我尝试将Express.Response.locals
的类型从any
更改为特定于应用的AppLocals
界面。我正在使用@types/express
。
我尝试了一些似乎不起作用的事情:
declare namespace express {
export interface Response {
locals: AppLocals
}
}
给出错误:Import declaration conflicts with local declaration of 'express'
来自文件头部的import * as express from 'express'
。
如果我尝试复制找到in the source的结构:
declare global {
namespace Express {
export interface Response {
locals: AppLocals
}
}
}
然后处理程序中express.Response
的locals属性仍为any
类型。
如果我试试这个,只是为了它:
declare namespace Express {
interface Response {
locals: AppLocals
}
}
TypeScript告诉我'Express' is declared but never used
答案 0 :(得分:0)
这对我有用:
declare module "express" {
interface Response {
locals: AppLocals
}
}
在我的情况下,我唯一想知道的是,如果我可以拥有多个这些并且TS合并locals
的类型,我还没有能够做到这一点,所以我只是扩展我的其他从AppLocals
路由特定的本地人并投射回复。