我是Typescript和NodeJs的新手。每当我在package.json
中提到一个节点模块,并在导入该节点模块时,我总是得到以下错误。
Could not find a declaration file for module 'ini'. 'e:/typescript-2020-1/parser1/node_modules/ini/ini.js' implicitly has an 'any' type.
Try `npm install @types/ini` if it exists or add a new declaration (.d.ts) file containing `declare module 'ini';`
Could not find a declaration file for module 'json-query'. 'e:/typescript-2020-1/parser1/node_modules/json-query/index.js' implicitly has an 'any' type.
Try `npm install @types/json-query` if it exists or add a new declaration (.d.ts) file containing `declare module 'json-query';`
为了解决这个问题,我总是搜索和安装在package.json
如下所示。
"dependencies": {
"ini": "^1.3.5",
"@types/ini": "^1.3.30",
"json-query": "^2.2.2",
"@types/json-query": "^2.2.0"
"@types/node": "^13.9.0"
}
如何避免包含所有类型的节点模块的特定类型。是否有可能这样做的方式,@types/<node module>
将自动添加到node_modues内,而不直接添加到package.json
?我试图添加以下在tsconfig.json
也,但它是行不通的。
"typeRoots": [
"node_modules/@types"
],
我的问题是“是否每个节点模块都需要添加@types
?请帮助我解决这个问题。
1条答案
按热度按时间c3frrgcw1#
如果一个npm包包含类型,那么当你安装的时候,你会免费得到它们。
如果没有,那么您可以在npm上的@types名称空间下找到它们。
有一个叫做typac的有用工具,你可以通过
npx
来安装或运行它,当你用它来安装任何npm包时,它会尝试为你的包安装@类型。也就是说