typescript - 如何从自带 .d.ts 的包中覆盖不正确的类型?

标签 typescript checkjs

我将 chalk 与一个 JavaScript 项目一起使用,我正在使用 TypeScript 的 checkJs 标志进行检查。

JavaScript 代码像这样导入它:

const chalk = require('chalk')

不幸的是,chalk 提供了自己的类型,但它的类型是错误的。它应该使用语法 export = chalk(这是 TypeScript 的 CommonJS 语法),而是使用 export default chalk

有人 submitted a PR to fix it , 但该项目已经有一段时间没有合并任何 PR。

如何解决粉笔打字导致的错误导出?

最佳答案

您可以通过提供 path mapping 来覆盖包的类型:

  1. 在您的项目根目录中创建一个名为 chalk-override.d.ts 的文件。复制其中的粉笔类型并修复它们。
  2. 将以下内容添加到您的 tsconfig.json(如果您还没有,请使用 tsc --init --checkJs 创建一个):

    {
        // ... other settings ...
    
        "baseUrl": "./",
        "paths": {
            "chalk": ["chalk-override"]
        }
    }
    

关于typescript - 如何从自带 .d.ts 的包中覆盖不正确的类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49884527/

相关文章:

javascript - 如何在 TypeScript/Angular 中初始化类型化对象?

javascript - 我应该使用什么来根据过滤器选择获取更新的计数?

typescript - 使用 Typescript 和 Jest 添加 i18n,出现 "All files must be modules when the ' --isolatedModules 错误”

angular - 为什么我不能使用 Angular NgModel 限制输入的值长度?

typescript - 导入语句单引号与双引号

javascript - 命名默认参数的 JSDoc Typescript 检查