typescript 阮一峰_深入理解TypeScript——扩展篇之CommonJS规范

本文详细介绍了TypeScript中的CommonJS规范,包括模块的局部环境、module对象、require命令、模块加载机制等内容。重点阐述了CommonJS如何防止全局变量污染,以及其模块的加载顺序和缓存机制。此外,还提及了AMD规范与CommonJS在浏览器环境下的差异。
摘要由CSDN通过智能技术生成

TypeScript是编译器 也是一种规范。

通过tsconfig.json可以自定义开发配置,这里有一份官方JSON配置文件,可作为参考。

逼不得已,又熟悉了一波CommonJS规范,这里必须得感谢像阮一峰这样的大佬们(先驱们),在中国互联网迅速发展的大环境中,这些为我们指路的人,是值得尊敬的。

温故而知新,获益匪浅。CommonJS的规范制定是很有必要的,对于服务端(NodeJS)来说,它有着稳定的运行环境,而CommonJS的好处是让代码文件(JS文件)遵循它的规则,从读取到回收,都遵循一套近乎完美的极致,被高效的利用。

引CommonJS规范,做下重点摘录,方便回头翻看。

一、概述

  1. 每个模块都是一个局部环境,在模块内定义的变量、函数、类,都是私有的,在其他文件内不可见。
  2. 如果想在多个文件分享变量,必须定义为global对象的属性。
6c16c2c6aa91cb39f14e0e8178b4ee45.png

这样可以被全局引用,但是这个写法官方不推荐。我想不应该在单个模块文件中去定义这种全局变量。 如果真的有需要的话,可以统一一份全局文件或者环境变量去使用,方便维护。知乎上有专门针对这个问题的探讨,可作参考,不多赘述。

3.模块有“入口”和“出口”:模块可以比喻为一个超市,超市从批发市场引入(require)了一堆商品来售卖(export),人们从超市内去获取(require)这些商品。

4.CommonJS实现了以下几点
(1) 所有代码都运行在模块作用域,不会污染全局作用域。(源码中,module外层是一个函数,执行这个函数会导出exports对象)
(2) 模块可以多次加载,但是只会在第一次加载时运行一次,然后运行结果就被缓存了,以后再加载,就直接读取缓存结果。要想让模块再次运行,必须清除缓存。(所以代码文件有改动的话,是需要重新

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值