typescript - 如何覆盖通过@types/package 安装的不正确的 TypeScript 类型定义

标签 typescript

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

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

最佳答案

您可以通过 patch-package 为您的应用在本地修补 @types/foo .

  1. 运行 npm i -D patch-package

  2. 只需修改 node_modules/@types/foo 即可满足您的需求。

  3. 运行 npx patch-package @types/foo。这会在 patches/ 中创建一个 diff 文件,记录上一步所做的更改。

  4. package.json 中添加 "scripts": {"postinstall": "patch-package"}。这使得每次运行 npm install 时都会应用补丁。

关于typescript - 如何覆盖通过@types/package 安装的不正确的 TypeScript 类型定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40322788/

相关文章:

reactjs - 当组件是通用的(多态 react 组件)时键入点击处理程序

typescript - bool 值 ('false' ) 返回真

angular - 如何在具有方法的商店(ngrx、ngxs)中存储对象

node.js - 使用 istabuljs/nyc 合并 Sonarqube 的覆盖范围

javascript - 强制子类不可变

Angular:为什么 http 调用在 ngOnInit 中起作用,而不是在点击事件中起作用? (与缓存有关)

javascript - 将过时的JavaScript库与更新的TypeScript集成

javascript - Chrome 消息扩展程序 : From injected script to background

typescript - 如何在 Jest 中模拟 navigator.clipboard.writeText()?

angular - 如何在 Angular 2 中迭代 JSON 对象?