一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第3天,点击查看活动详情。
模块导入
模块导入使用import关键字,关键字后面的大括号是需要导出的命名模板。from关键字后面跟的是模块名。模块名不需要加ts结尾,如果我们想要导出x,y可以如下:
import { x, y } from 'tes';
如果我们想要一次性导出整个模块,我们可以使用*关键字, 默认导出使用import ... form ...,import后面跟的是导入模块导出在当前模块中所绑定的标识符。如果只使用import而不是用from,那么不会导入任何模块导出,知识简单的用来执行。
import * as io from 'tes';
重命名
如果我们想要将导出模块的名字进行重命名为另一个名字,可以使用as关键字。聚合模块我们需要在原来基础上增加from关键字,关键字后面跟的还是导出的模块名称。
export { oldValue as newValue };
类型模块
如果我们想要编译器在编译生成的js时删除相应的导入导出语句,我们需要满足模块导入或导出的标识符仅被用在类型的位置上和模块导入或导出的标识符没有被用在表达式的位置上,意思就是没有作为一个值去使用。
模块中导出类型使用export type关键字。如果有模块导出需要加上from关键字。大括号中包裹的是类型名。如果想要默认导出类型不需要使用大括号,直接在type后面跟着任意的标识符名,用来表示导入的默认模块导出类型在当前模块中所绑定的标识符。模块导入所有导出的命名类型使用*关键字,后面跟着任意标识符名。ts中的类可以表示一个值还可以表示类类型。
export type { Num } from 'tes';
import type Peo form 'tes';
import type * as Peo from 'tes'
编译器
在--imprtsNotUsedAsValues中接收的值有remove表示自动删除只和类型相关的import语句。preserve表示会保留所有import语句。error表示会保留所有import语句。
动态模块
动态模块的导入通过import()函数可以实现。接收的参数是一个模块路径作为参数。返回的是Promise对象。动态模块的导入语句可以在任意位置和非模块中去使用。当模块被成功加载后。Promise对象的完成值用来作为模块对象。合理运用动态模块的按需加载从而提升性能。