TypeScript入门九:TypeScript的模块
- 关于TypeScript模块的基本使用方法
Ts的模块化语法与ES6的语法基本是一致(关于一些细节特性没有测试,请各自自行测试),然后再由tsconfig.json的module字段来描述转码类型,具体转码类型:
"module": "commonjs", /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', or 'ESNext'. */
Tsc就会根据module设置的模块转码类型自动转码,我们知道模块在浏览器的支持并不时很好,如果需要用到网页中还需要进一步根据模块类型降级,之前我已经有Nodejs的Commonjs规范的模块降级和ES6模块降级的相关博客:
当然还有一些打包工具集成的相关降级工具的应用,这些已经与Ts无关,可以参考我的一些相关博客。
这里我们就来看看Ts转码Commonjs和ES6模块的一个示例代码:
//a.ts
export const PI = 3.14;
export namespace MyMathA{ //使用多重命名空间
export const strA = "This is namespace a.";
}
//inde.ts
import {PI,MyMathA} from './a';
console.log(PI);
console.log(MyMathA.strA);
先来看Commonjs模块模式转码后的代码:("module":"commonjs")
//a.js
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
//a.ts
exports.PI = 3.14;
var MyMathA;
(function (MyMathA) {
MyMathA.strA = "This is namespace a.";
})(MyMathA = exports.MyMathA || (exports.MyMathA = {})); //inde.js
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var a_1 = require("./a");
console.log(a_1.PI);
console.log(a_1.MyMathA.strA);
然后再来看看ES6模块模式转码后的代码:("module":"es2015")
//a.js
export var PI = 3.14;
export var MyMathA;
(function (MyMathA) {
MyMathA.strA = "This is namespace a.";
})(MyMathA || (MyMathA = {})); //inde.js
import {PI,MyMathA} from './a';
console.log(PI);
console.log(MyMathA.strA);
TypeScript入门九:TypeScript的模块的更多相关文章
- TypeScript入门指南(JavaScript的超集)
TypeScript入门指南(JavaScript的超集) 你是否听过 TypeScript? TypeScript 是 JavaScript 的超集,TypeScript结合了类型检查和静态分析 ...
- TypeScript入门实例
前言 TypeScript是JavaScript的超集,微软公司开发,利用es6语法,实现对js的面向对象编程思想,写代码的时候会像强类型语言一样,指定参数类型.返回值类型,类型不对会报错,但编译后还 ...
- TypeScript入门一:配置TS工作环境
配置手动编译TS文件工作环境 配置webpack自动化打包编译工作环境(后面补充) 一.TypeScript入门学习引言 进入主题之前,首先说明这个系列的博客是我刚刚接触TypeScript的学习笔记 ...
- [译] TypeScript入门指南(JavaScript的超集)
你是否听过 TypeScript? TypeScript 是 JavaScript 的超集,TypeScript结合了类型检查和静态分析,显式接口.TypeScript是微软的开源项目,它是由C#之父 ...
- TypeScript入门(三)面向对象特性
一.类(Class) 类是ts的核心,使用ts开发时,大部分代码都是写在类里面. 1.类的声明 多个对象有相同的属性和方法,但是状态不同. 声明类的属性和方法时可以加 访问控制符,作用是:类的属性和方 ...
- [转载]TypeScript 入门指南
之前有听过,但未使用过,而最近在用nodejs,angularjs做一些前端项目,想到了这个来,正是学习TypeScript的时候,看介绍貌似和coffeescript相似,也JavaScript的转 ...
- typescript 入门
为什么要使用typescript? 出现拼写错误,可以立即指出错误. 出现模块引入错误,立即指出错误. 出现函数.变量类型错误,立即指出错误. 在react组件中制定好了基本的props和state之 ...
- TypeScript 入门指南
你是否听过 TypeScript? TypeScript 是微软开发的 JavaScript 的超集,TypeScript兼容JavaScript,可以载入JavaScript代码然后运行.TypeS ...
- 写给自己的TypeScript 入门小纲
前几日,在知乎上写了一些技术类的文章,有人私信问我,是不是要找一份工作,有没有想过要跳槽,然后我回到,你们公司都是用的什么框架什么技术,他罗列了一堆,其中就包含了TypeScript,我甚至不知道有这 ...
随机推荐
- Ionic4.x Javascript 扩展 ActionSheet Alert Toast Loading 以及 ionic 手势相 关事件
1.ActionSheet 官方文档:https://ionicframework.com/docs/api/action-sheet <ion-header> <ion-toolb ...
- mybatis bind exception
springboot 项目 搜了半天 网上的解决方法千篇一律,最终问题 原因 ,yml 文件路径问题 mybatis: mapper-locations: classpath:com/yang/f ...
- Swift学习 (三)
3.函数: 在Swift中函数的定义基本与OC一样. 主要区别为: 通过func关键词定义函数 返回值在->关键词后标注 各举一个类方法与实例方法例子. 1 2 + (UIColor*)blac ...
- IDEA的查询引用、调用关系图的功能(转)
转自: http://www.cnblogs.com/ghj1976/p/5382455.html Eclipse的"Call Hierarchy"可以查看一个Java方法或类成员 ...
- 单例模式-java
/** * The MIT License * Copyright (c) 2014-2016 Ilkka Seppälä * <p> * Permission is hereby gra ...
- 使用一般处理程序生成 JSON
在 .NET 3.5 之后,定义在命名空间 System.Runtime.Serialization.Json 中的 DataContractJsonSerializer 可以帮助我们直接将一个对象格 ...
- git merge仓
git merge --no-ff branch 合并指定代码 如果有冲突 git mergetool 可视化解决冲突, qa! 全退出 如果修复失败 git checkout branch -f ...
- Windows删除某服务
win+R然后cmd进入命令窗口 sc delete 服务名
- 关于verilog实例化的介绍
概念 当我们完成一个比较完整的系统的时候,通常需要编写一个Testbench来验证自己的设计的功能能否满足设计要求.在这个系统中通常会有一个top模块来连接那些小的模块,verilog通过实例化的方式 ...
- 3、1 ElasticSearch
文档 类型 索引 行 表 数据库 是引擎 一.新建文档 1.以post发送提交 2.http://127.0.0.1:9200/索引/类型 3.body:{ "title&quo ...