【发布时间】:2018-04-11 01:12:30
【问题描述】:
process.env 属于 ProcessEnv 类型,定义如下:
export interface ProcessEnv {
[key: string]: string | undefined;
}
我想扩充这个 TypeScript 界面,使其包含特定于我的应用程序的键,因此结果类似于:
export interface ProcessEnv {
MY_VARIABLE_1: string;
MY_OTHER_VARIABLE: string;
[key: string]: string | undefined;
}
我找不到实现它的方法,我猜它会是 declare module 或 declare namespace 某个地方,但找不到实现此目的的具体方法。
【问题讨论】:
-
你为什么需要这样的打字?用于自动完成或验证?对于自动完成,您的示例应该可以正常工作。为了验证 - 您的额外文件不会使
[key:string]:string更具体。 -
用于自动补全。 (增强只能添加到接口,不能从中删除,因此索引器将始终存在。)
-
那么你的问题是什么?如何从第三方库重新定义类型?您是否尝试过使用
as?或者您想要更清洁的解决方案? -
问题是如何编写增强(我猜是
declare namespace ...),以便当我执行process.env.时,IDE 会建议我的自定义变量。
标签: node.js typescript typescript-typings