[英]Exclude/overwrite npm-provided typings
我有一个npm包,写得不好,过时的打字。 我写了自己的打字,现在我想知道我是否能以某种方式排除npm包中的原始打字。 它不是接口的简单扩展,原点基本上是垃圾。
当然,使用tsconfig.json中的排除列表不能用于此目的,因为即使您排除该文件夹,它仍会从node_modules加载文件。
在src
下创建node_modules
文件夹,然后输入要覆盖的模块的类型:
├── node_modules
│ └── ...
│
└── src
├── index.ts
├── ... your codes ...
│
└── node_modules
└── <module-to-be-overwritten>
└── index.d.ts
无需修改compilerOptions
在tsconfig.json。
阅读https://www.typescriptlang.org/docs/handbook/module-resolution.html中的 TypeScript如何解析模块部分。
您可以使用tsConfig中的paths选项获得所需的行为它可能看起来像这样:
{
"compilerOptions": {
...
"paths": {
"*": [
"src/*",
"declarations/*"
]
}
},
...
}
使用此配置typescript在src中查找模块(应该有所有应用程序源)以及声明,在声明文件夹中我通常会放置我需要的额外声明。
要覆盖节点模块的类型,有两个选项:
在声明文件夹中放置一个名为module的文件夹,其中包含一个名为index.d.ts的文件
在声明文件夹中放置一个名为模块的声明文件
作为一个工作示例,您可以查看此repo https://github.com/kaoDev/react-ts-sample
Bernhard Koenig的一个重要提示:
路径的顺序很重要。 我必须在具有原始类型定义的路径之前使用我的覆盖放置路径,以便首先拾取我的覆盖。 - Bernhard Koenig
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.