TypeScript - import... 和 import { ... }(带花括号)的区别

阅读时长 3 分钟读完

在 TypeScript 的开发中,我们经常使用 import 关键字导入其他模块或库中的代码。然而,有时候 import 命令后面会跟着一对花括号 {},而有时候则没有。这两种形式之间到底有什么区别呢?本文将详细介绍这个问题。

import ...

import 命令后面如果跟着一个模块名,就表示加载该模块的默认输出,即默认情况下 export default 所指向的对象或值。例如:

这里的 React 表示加载了 react 模块的默认输出。我们可以直接使用 React 来访问该模块提供的功能。

如果要加载一个自定义的模块,需要确保该模块在其导出语句中使用了 export default 语法,如下所示:

此时我们直接使用 import 加载模块即可,无需加花括号。

import { ... }

当我们需要加载一个模块中的具体导出内容时,就需要使用 import { ... } 语法。例如:

这里的 useStateuseEffect 分别表示加载了 react 模块中导出的 useStateuseEffect 两个函数。我们可以通过花括号来指定需要导入哪些内容。

需要注意的是,使用 import { ... } 时,要求导入的变量名必须与该模块中对应导出语句中的变量名完全一致。否则将会抛出错误。

-- -------------------- ---- -------
-- --------
------ ----- --- - --- ------- -- ------- -- - - --
------ ----- -------- - --- ------- -- ------- -- - - --

-- --------
------ - ---- ------ - ---- ---------- -- --------- ------ ---

------ - --- -- ---- -------- - ---- ----------
------------------ ---- -- -- -
----------------------- ---- -- -- -

在上面的示例代码中,index.ts 中的第二行将会导致一个编译时错误,因为 utils.ts 文件中没有导出名为 divide 的变量。而第四和第五行则指定了需要导入的变量,并且给其中一个变量起了个别名 add

总结

简单来说,import ... 是用来加载模块的默认输出,而 import { ... } 则是用来加载模块中具体的导出内容。在使用过程中需要注意导出的变量名与导入时指定的变量名要完全一致。

希望本文对你理解 TypeScript 中 import 的使用方式有所帮助。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/605430098d846479e750ac49

纠错
反馈