解决npm包提供的错误index.d.ts文件

问题描述 投票:0回答:2

我最近遇到了一个npm包,它不是用TypeScript编写的,但确实提供了自己的index.d.ts文件。不幸的是,这些类型是不准确的,并由没有维护包的人贡献。当我添加一个/// <reference...指令指向我的固定类型时,VS Code似乎不确定该怎么做,并通知我给定对象有两种类型定义。这个问题没有得到解决,我无法继续前进。除了在我的机器上编辑node_modules中的文件之外,我的行动是什么?

如果这些类型是由DefinitelyTyped提供的,那么这很容易:我只是删除不好的类型,提交我的更改PR,同时使用我的本地版本。由于这个index.d.ts是图书馆本身的一部分,是我唯一的选择克隆整个回购,从那里工作,在我准备好时提交PR,希望他们合并并快速发布新版本?这似乎不对。有没有办法告诉编译器忽略node_modules中的特定index.d.ts文件,以便我的唯一一个?

typescript definitelytyped
2个回答
1
投票

skipLibCheck: true文件中的compilerOptions中添加tsconfig.json。这会禁用所有* .d.ts文件的类型检查。

该标志在compiler options documentation中描述。

如果您确定代码正确,另一个选择是通过在出现错误的行上使用// @ts-ignore注释来忽略错误。

这里也是一个link到类似的帖子,也提供了两种可能的解决方案。


0
投票

评论here,在@AlesD的评论中与其他答案相关联,完美地完成了这一操作。在src中,创建node_modules/problem-library/index.d.ts并在那里放置更新的类型定义。它们将覆盖库提供的那些。

您的.gitignore可能会忽略您的文件,这是不好的。您可以通过修改.gitignore来解决这个问题

node_modules/
!src/node_modules/

第一个是你现有的文件夹排除,第二个是添加一个模式,在这种情况下会否定它。

© www.soinside.com 2019 - 2024. All rights reserved.