【发布时间】:2019-07-10 17:39:51
【问题描述】:
我在全局扩展第三方库的接口时遇到问题,因为在根级别导入其他文件会导致声明文件不再是全局的。
这是一个例子:
我想在 Express 的 Request 对象上添加一个类型为“MyUser”的属性“user”。 如果它是 MyUser 类型,我可以简单地执行以下操作:
declare namespace Express {
interface Request {
user: string;
}
}
然后在其他地方:
...
function(..., req: Request, ...) {
...
req.user; //its a string
...
}
一切都会完美运行。但是,执行以下操作不起作用:
import MyUser from "../../src/types/MyUser";
declare namespace Express {
interface Request {
user: MyUser;
}
}
因为我现在有一个顶级导入。没有办法避免吗?如果您甚至不能在其中使用自己的类型,那么能够合并声明有什么意义?
【问题讨论】:
标签: typescript typescript-typings type-declaration