node.js - 为什么 “require”编译但 “import”不编译?

标签 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');会编译。现在我想知道导入有什么问题。

最佳答案

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

关于node.js - 为什么 “require”编译但 “import”不编译?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63412506/

相关文章:

arrays - 为什么 Rust 在运行时检查数组边界,而(大多数)其他检查发生在编译时?

compiler-errors - 未使用属性 'explicit_arity'

node.js - 无需重新加载或额外请求即可在客户端访问服务器 session 信息

arrays - Ejs forEach循环未定义

javascript - Angular 2 : Update FormControl validator after valueChanges

javascript - 在 Angular 7 中并排组合两个数组

javascript - 从两个模型返回数据

javascript - 什么是动态 Web UI 开发的正确方法 : template based

typescript - 我的函数没有返回正确的类型,这可能吗?

compiler-errors - 编译 rv32i 代码包含压缩指令