假设我想在我的TypeScript项目中使用dotenv模块,并安装它.d、 ts使用npm install @types/dotenv --save.然后我意识到这些类型是不正确的.例如,config()函数不返回布尔值,而是返回更丰富的对象.

我该如何处理这种情况?我是否应该将下载的类型定义复制到另一个文件中,手动更新并卸载@types/dotenv?有更好的办法吗?(我需要立即修复,而不是在upstream 维护人员将其合并之后.)

推荐答案

我会判断dotenv@types/dotenv的版本是否对齐,这可能是功能缺失的原因.

如果是,那么更干净的方法就是修改.d、 这是你自己.

为了做到这一点:npm remove @types/dotenv.在项目上创建文件夹types.将node_modules/@types中的folder dotenv复制到其中.

然后修复其中的d.T,修改tsconfig.json,让它也在新文件夹中查找缺少typeRoots的类型,如下所示:

{
"compilerOptions": {
    "module": "commonjs",
    "noImplicitAny": true,
    "typeRoots": [
        "./node_modules/@types",
        "./types/",
    ]
},
"files": ["./app.ts"]
}

(别忘了添加./node_modules/@types种或其他你在npm中找到的不再存在的类型.)

希望有帮助!

Typescript相关问答推荐

返回对象的TypScript构造函数隐式地替换This的值来替换super(.)的任何调用者?

React Hook中基于动态收件箱定义和断言回报类型

如何使用属性作为具有Generics的TypScript类中的类型守护?

泛型函数类型验证

如何创建泛型类型组件来使用React Native的FlatList或SectionList?'

如何在排版中正确键入中间件链和控制器链

如何在TypeScrip中从字符串联合类型中省略%1值

从TypeScrip中的其他类型检索泛型类型

表单嵌套太深

TypeScrip省略了类型参数,仅当传递另一个前面的类型参数时才采用默认类型

在另一个类型的函数中,编译器不会推断模板文字类型

接受字符串或数字的排序函数

S,为什么我的T扩展未定义的条件在属性的上下文中不起作用?

如何从接口中省略接口

如何在Reaction 18、Reaction-Rout6中的导航栏中获取路由参数

为什么类型脚本使用接口来声明函数?他的目的是什么.

递归JSON类型脚本不接受 node 值中的变量

我应该使用服务方法(依赖于可观察的)在组件中进行计算吗?

对于通过 Axios 获取的数据数组,属性map在类型never上不存在

基于可选参数的动态类型泛型类型