如何声明一个NodeJs服务的环境变量类型ProcessEnv声明
前言
在做node后端服务开发的时候,使用环境变量已经是基操了,但是在ts中默认的环境变量是第一个非常宽泛的类型:
interface Dict<T> {
[key: string]: T | undefined;
}
interface ProcessEnv extends Dict<string> {
/**
* Can be used to change the default timezone at runtime
*/
TZ?: string;
}
这就导致我们自定义的环境变量是没有属性提示的,有点难受,所以需要我们自己去声明一个同名的interface去合并类型,从而实现属性提示。
教程
我们创建一个env.d.ts
文件,比如存放在src/types
目录下。
export {};
declare global {
namespace NodeJS {
interface ProcessEnv {
/** 模式 */
NODE_ENV: string;
...自定义
}
}
}
需要注意,不知道为什么一定要有一个export
导出,这个类型文件才会生效。
然后在tsconfig.json
中将类型目录加入。
{
"compilerOptions": {
"typeRoots": ["./src/types"]
}
}
此时再回去通过process.env
调用属性就有提示了。
版权申明
本文系作者 @木灵鱼儿 原创发布在木灵鱼儿站点。未经许可,禁止转载。
全部评论 1
wu先生
Google Chrome Windows 10