首页 > 其他分享 >Typescript 编译模块

Typescript 编译模块

时间:2022-11-02 14:22:26浏览次数:37  
标签:function exports Typescript require twoPi 编译 模块 valueOfPi constants

Typescript 有一种统一的语言处理模块的导入和导出,在编译时可以根据最终js文件应用到哪一种模块系统,根据模块系统的规范,生成代码

原始Ts文件

import m = require("mod");
export let t = m.something + 1;

下面是TS根据不同模块系统,编译的结果

CommonJS

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.twoPi = void 0;
const constants_1 = require("./constants");
exports.twoPi = constants_1.valueOfPi * 2;

AMD

define(["require", "exports", "./constants"], function (require, exports, constants_1) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.twoPi = void 0;
    exports.twoPi = constants_1.valueOfPi * 2;
});

UMD

(function (factory) {
    if (typeof module === "object" && typeof module.exports === "object") {
        var v = factory(require, exports);
        if (v !== undefined) module.exports = v;
    }
    else if (typeof define === "function" && define.amd) {
        define(["require", "exports", "./constants"], factory);
    }
})(function (require, exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.twoPi = void 0;
    const constants_1 = require("./constants");
    exports.twoPi = constants_1.valueOfPi * 2;
});

System

System.register(["./constants"], function (exports_1, context_1) {
    "use strict";
    var constants_1, twoPi;
    var __moduleName = context_1 && context_1.id;
    return {
        setters: [
            function (constants_1_1) {
                constants_1 = constants_1_1;
            }
        ],
        execute: function () {
            exports_1("twoPi", twoPi = constants_1.valueOfPi * 2);
        }
    };
});

ES6 ES2020 ESNext 规范一致

import { valueOfPi } from "./constants";
export const twoPi = valueOfPi * 2;

 

标签:function,exports,Typescript,require,twoPi,编译,模块,valueOfPi,constants
From: https://www.cnblogs.com/chenyingzuo/p/16850885.html

相关文章

  • Linux编译过程中忽略警告,如何屏蔽Warning判定为error
     在内核编译时,经常会遇到类似的报错,这些报错都有一个标志,那就是结尾都有[-Werror......]这些报错实际上是内核在编译的时候,把一些警告当做错误来处理。在实际开发中,为......
  • dth11模块调试问题
    dth11模块调试发现的问题:gpio引脚输出时不该再设置方向。staticvoiddht11_start(void){//此处buggpiod_direction_output(dht11_data_pin,GPIOD_OUT_LO......
  • ubuntu 22.04 编译NetBSD
    本文参考链接:https://www.its301.com/article/u013257164/107532121偶然看到NetBSD源码可以在其他平台(linux,FreeBSD)上编译,亲自在ubuntu22.04试验了一下,确实可以,加......
  • 振弦采集模块VM系列几个应用电路
    振弦采集模块VM系列几个应用电路振弦传感器:(vibratingwiresensor)是以拉紧的金属钢弦作为敏感元件的谐振式传感器。当弦的长度确定之后,其固有振动频率的变化量即可表征钢......
  • vue源码分析-挂载流程和模板编译
    前面几节我们从newVue创建实例开始,介绍了创建实例时执行初始化流程中的重要两步,配置选项的资源合并,以及响应式系统的核心思想,数据代理。在合并章节,我们对Vue丰富的选项......
  • GCC使用预编译头文件
    GCC使用预编译头文件通常大型项目有许多头文件,每个源文件中都包含很多头文件。编译器一遍又一遍地处理这些头文件所花费的时间几乎可以占据构建项目的所有时间。为了使构......
  • TypeScript 常用类型
    typescript常用类型js已有类型原始类型:number\string\boolean\null\underfined\symbol对象类型:object(包括数组、对象、函数等对象)ts新增类型......
  • 优雅的写好Vue项目代码 — 路由拆分、Vuex模块拆分、element按需加载
    目录路由的拆分VUEX模块拆分ElementUI库按需加载的优雅写法路由的拆分项目较大路由较多时,路由拆分是一个不错的代码优化方案,按不同业务分为多个模块,结构清晰便于统一管......
  • VC6命令行编译DirectX9
    编程环境:VC6.0绿色版                 DirectX9.0SDK1.采用NMake方式编译DX9的代码,不使用IDE。界面采用Win32API方式构建。2.准备源代码,本......
  • gcc编译步骤
    可以一步一步得到对应运行结果-o其实跟重命名差不多......