TypeScript 中的 Import 和 require 有啥不同?

Posted

技术标签:

【中文标题】TypeScript 中的 Import 和 require 有啥不同?【英文标题】:What is different between Import and require in TypeScript?TypeScript 中的 Import 和 require 有什么不同? 【发布时间】:2018-08-02 04:54:47 【问题描述】:

我知道如果我想使用另一个文件中的类/模块,importrequire 都可以工作。但我真的不知道为什么

如果我使用require ('./config.json') 会起作用, 但使用import config from './config.json' 将不起作用。

这是因为 import 只接受类/模块,不能使用 JSON 吗?

我也知道 import 在编译时工作,但 require 在运行时工作。

但真的很困惑。

【问题讨论】:

你在那里回答了你自己的问题。 这个话题很重要。 【参考方案1】:

这是两个完全不同的模块系统,因此工作方式不同。

import 是所谓的“ES 模块”的一部分,即 ES6 带来的模块的原生 javascript 实现。 而require则是commonjs模块系统的import关键字。它今天仍然被广泛使用,因为 Node.js 使用它(在其创建时 JavaScript 规范中没有原生模块系统)。

查看 MDN 上的导入/导出文档和 node.js 网站上的 require 文档。

【讨论】:

以上是关于TypeScript 中的 Import 和 require 有啥不同?的主要内容,如果未能解决你的问题,请参考以下文章

TypeScript - import ... 和 import ... 之间的区别(带花括号)

TypeScript 中 `import from` 和 `import require` 的区别

使用 TypeScript 和 nodemon:SyntaxError:无法在模块外使用 import 语句

Electron 和 TypeScript (electron-builder):“不能在模块外使用 import 语句”

Typescript、React、Electron:不能在模块外使用 import 语句

TypeScript 中的 Http 请求