npm 如何为所有节点模块自动安装@类型

nxowjjhe  于 2022-11-14  发布在  其他
关注(0)|答案(1)|浏览(246)

我是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?请帮助我解决这个问题。

c3frrgcw

c3frrgcw1#

如果一个npm包包含类型,那么当你安装的时候,你会免费得到它们。
如果没有,那么您可以在npm上的@types名称空间下找到它们。
有一个叫做typac的有用工具,你可以通过npx来安装或运行它,当你用它来安装任何npm包时,它会尝试为你的包安装@类型。
也就是说

npx typac ini -i

相关问题