为什么“需要”编译而“导入”不编译?

时间:2020-08-14 12:09:52

标签: node.js typescript compiler-errors node-modules

我是TypeScript/JavaScriptNode.js的新手,正在编写一个简单的脚本以在命令行中运行。

我安装了archiver依赖项,并将import archiver from 'archiver';添加到了脚本中。
当我使用tsp -p .编译脚本时,import无法编译:

error TS7016: Could not find a declaration file for module 'archiver'. <my script path> implicitly has an 'any' type.
Try `npm install @types/archiver` if it exists or add a new declaration (.d.ts) file containing `declare module 'archiver';`

6 import archiver from 'archiver';
                       ~~~~~~~~~~

但是const archiver = require('archiver');确实可以编译。现在我想知道导入有什么问题。

1 个答案:

答案 0 :(得分:1)

您安装的npm软件包没有类型,即纯JS软件包。如果此包支持Typescript,则需要运行npm install @types/archiver。 JavaScript标准(ES6 / 2015)建议使用import而不是require