在Typescript中,如何忽略NPM包';s内置声明文件?
我正在使用NPM包在Typescript中,如何忽略NPM包';s内置声明文件?,typescript,Typescript,我正在使用NPM包react hyperscript帮助程序。当我导入它时,它将读取index.js,并从index.d.ts中获取类型。但是,这些类型似乎已经过时,因为我遇到了很多类似这样的错误: node_modules/react hyperscript helpers/lib/index.d.ts(546,53):错误TS2314:泛型类型“HTMLAttributes”需要1个类型参数。 我知道如何修复类型错误,但我当然无法编辑节点_modules下的文件,因为它将在下一次npm安装
react hyperscript帮助程序
。当我导入它时,它将读取index.js
,并从index.d.ts
中获取类型。但是,这些类型似乎已经过时,因为我遇到了很多类似这样的错误:
node_modules/react hyperscript helpers/lib/index.d.ts(546,53):错误TS2314:泛型类型“HTMLAttributes”需要1个类型参数。
我知道如何修复类型错误,但我当然无法编辑节点_modules
下的文件,因为它将在下一次npm安装中被覆盖
如何忽略包含的.d.ts
文件而使用我的文件?
我试图忽略tsconfig.json
中的所有node\u模块
,并设置typings
选项,但没有成功。这是该文件(如果有任何用途):
{
"compilerOptions": {
"outDir": "./dist/",
"sourceMap": true,
"noImplicitAny": true,
"module": "commonjs",
"target": "es5",
"jsx": "react",
"typeRoots" : ["./typings"]
},
"include": [
"typescript/**/*"
],
"exclude": [
"node_modules/**/*",
"node_modules/react-hyperscript-helpers/lib/*.ts"
]
}
第一种选择:
不要使用@types npm模块,将所有声明手动放入d.ts
文件中,这些文件包含在tsconfig.json
中。对于所有pkg,您必须使用声明模块“mymod”{…}
包装定义
除此之外,请确保在配置“moduleResolution”中添加此compilerFlag:“classic”
第二种选择:
供应商提供要更正声明的整个npm包。您继续使用@types pkg,但修复了一个npm pkg不适合您的问题
第三:
向pkg创建者发送PR
这实际上是Arnavion在IRC freenode中的##typescript中的帮助的结果。只是为有问题的人张贴在这里。也许你可以尝试一些路径选项,请查看