TypeScript学习日志-第二十天(模块解析)

模块解析

一、ES6之前的模块规范

前端模块化规范是有很多的,在es6模块化规范之前分别有一下的模块化规范

一、Commonjs

这是 NodeJs里面的模块化规范

javascript 复制代码
// 导入
require("xxx");
require("../xxx.js");
// 导出
exports.xxxxxx= function() {};
module.exports = xxxxx;

二、AMD

AMDCMD 都是浏览器下使用的规范。

AMD 遵循的是 requireJs

javascript 复制代码
// 定义
define("module", ["dep1", "dep2"], function(d1, d2) {...});
// 加载模块
require(["module", "../app"], function(module, app) {...});

三、CMD

CMD 遵循的是 seaJs

javascript 复制代码
define(function(require, exports, module) {
  var a = require('./a');
  a.doSomething();
  
  var b = require('./b');
  b.doSomething();
});

四、UMD

UMDAMDCommonJS 的糅合

javascript 复制代码
(function (window, factory) {
    // 检测是不是 Nodejs 环境
	if (typeof module === 'object' && typeof module.exports === "objects") {
        module.exports = factory();
    } 
	// 检测是不是 AMD 规范
	else if (typeof define === 'function' && define.amd) {
        define(factory);
    } 
	// 使用浏览器环境
	else {
        window.eventUtil = factory();
    }
})(this, function () {
    //module ...
});

二、ES6模块化规范用法

一、默认导出

默认导出的东西没有规定类型可以是任意类型,但是一个模块只能出现一个默认导出,我就使用一个数值类型的导出,如图:

使用默认导出的,接收的时候就可以自行命名,如图:

这时候打印出来的就是一个对象 { a:1 }

二、分别导出

所谓分别导出 就是有多个需要导出的东西 使用多个 export导出,如图:

那要怎么使用呢,如图:

三、重名问题

当我们引入的东西和我原本存在的东西重名了,我们可以给引入的东西一个别名,即可解决这个问题,如图:

使用as 给重名的变量或方法重名

四、动态引入

当我们在不同的时候 需要按需进行引入的时候,就需要使用动态引入了,我们要怎么进行动态引入呢,如图:

单纯使用 import 是不能在 方法里面的 它只能在最顶层,所以可以按上述写即可

相关推荐
这是个栗子14 小时前
关于 TypeScript 的介绍
前端·javascript·typescript
LXXgalaxy15 小时前
Vue3 + TypeScript 组件开发速查表新手速成手册
前端·javascript·typescript
belldeep16 小时前
前端:TypeScript 版本 2 , 3 , 4 , 5 , 6 有什么差别?
前端·javascript·typescript
烛衔溟17 小时前
TypeScript 类型别名、字面量类型、联合类型与交叉类型
前端·javascript·typescript·联合类型·类型别名·字面量类型·交叉类型
烛衔溟17 小时前
TypeScript 特殊类型与空值安全
安全·typescript·前端开发·空值处理
紫_龙18 小时前
最新版vue3+TypeScript开发入门到实战教程之组件通信之一
前端·vue.js·typescript
百万蹄蹄向前冲1 天前
让TypeScript 再次伟大:愚人节前夜Claude Code意外开源与OpenClaw小龙虾打造 AI 原生开发新纪元
人工智能·typescript·node.js
wendycwb1 天前
前端城市地址根据最后一级倒推,获取各层级id的方法
前端·vue.js·typescript
向上的车轮2 天前
熟悉C#如何转TypeScript——SDK与包引用
开发语言·typescript·c#
紫_龙2 天前
最新版vue3+TypeScript开发入门到实战教程之Pinia详解
前端·javascript·typescript