TypeScript 模块系统
(资料图片仅供参考)
在TypeScript中,和ECMAScript 2015一样,任何包含顶级导入或导出的文件都被认为是一个模块。相反,没有任何顶级导入或导出声明的文件被视为脚本(script,意义为js逻辑片段),其内容可在全局作用域中使用(因此也可用于模块)。
脚本暴露在全局作用域的var变量会追加到window上,可以通过访问;而使用const、let声明的变量仅仅存在于全局作用域中无法通过访问,但是可以直接使用变量名使用。
模块在它们自己的作用域中执行,而不是在全局作用域中执行。这意味着在模块中声明的变量、函数、类等在模块外部是不可见的,除非它们使用导出标识符显式导出。相反,要使用从不同模块导出的变量、函数、类、接口等,必须使用导入语法导入。
ES模块的知识不再赘述下面讲解一下TypeScript的模块系统。
TypeScript类型系统的成员几乎都无法编译成JS代码,但是在编码阶段的类型检查依赖于类型系统提供的线索,所以就出现了TS模块系统独有的“类型引入”,我们可以和ES模块一样通过“import”引入interface、type、class,也就是说我们可以混合引入ES对象和TS类型成员。为了方便打包框架解析我们可以使用type标识符将TS类型系统的成员,从而将ES对象和TS对象分开对待。
上述示例解释了type关键字的使用方法,对于纯类型引入我们可以将type关键字置于imort之后,表示引入的都是TS类型系统成员;对于不全都是类型的引入我们可以在类型前单独标记type。type的意义在于表示仅作为类型标注使用,如果参与实例化(new class)则会报错,且打包工具可以完全忽略此导入。
关键词:
相关阅读
-
TypeScript 模块系统
在TypeScript中,和ECMAScript2015一样,任何包含顶级导入或导出的文件 -
“债牛”行至当下,如何看待债券市场后...
“债牛”行至当下,如何看待债券市场后续机会?2023年08月07日16:27中 -
河南714种集采药品平均降幅超50%,142种...
8月7日,记者从河南省医疗保障局获悉,全省积极推进药品医用耗材集中带 -
发电机轴径磨损现场修复
企业该发电机传动侧轴承与转子轴是过盈配合,由于轴本身的材质问题和经 -
利尔化学(002258)8月8日主力资金净卖...
截至2023年8月8日收盘,利尔化学(002258)报收于14 1元,上涨0 5%,换手 -
河南鲁山县:多点发力构建营商环境“新...
自“拼经济、抓投资”工作开展以来,鲁山县露峰街道坚持纾困惠企积... -
泰和新材(002254)8月8日主力资金净买...
截至2023年8月8日收盘,泰和新材(002254)报收于20 98元,下跌0 94%,换 -
川大智胜(002253)8月8日主力资金净卖...
截至2023年8月8日收盘,川大智胜(002253)报收于14 0元,下跌1 41%,换 -
郏县:水果再添“新成员” 中原蜜瓜甜...
8月3日,来自郏县堂街镇关庄村的水果“新成员”喜获丰收,在种植的... -
天威视讯(002238)8月8日主力资金净卖...
截至2023年8月8日收盘,天威视讯(002238)报收于7 18元,上涨1 27%,换 -
凉席木刺扎入幼儿体内 皮下潜藏数天才...
前两天,赵女士家5岁的宝宝反复说“屁股痛痛”。“一开始孩子说的时... -
皇氏集团:目前阜阳智慧化乳制品中央工...
每经AI快讯,有投资者在投资者互动平台提问:7月28日,皇氏(安徽)乳 -
金陵,一眼千年!
南京六朝古都,十朝都会拥有将近2500年的建城历史从春秋时期长江和秦淮 -
哈尔滨机场T1航站楼国内区域投入使用
中新网哈尔滨8月7日电(仇建王雪彤)8月7日,哈尔滨机场T1航站楼国内区域 -
视频丨工行湖南分行未来5年将向岳阳提供...
00:52双方签约。红网时刻新闻8月7日讯(通讯员阳洋)8月4日,中国工商 -
韩国超导低温学会:室温超导体LK-99样品...
韩国超导低温学会(KSSC)周二表示,声称超导技术取得突破的量子能源研究 -
大行评级|里昂:三大中资电讯股息率吸...
格隆汇8月8日丨里昂发表研究报告指,三大中资电讯商将陆续公布业绩,预 -
安图县闻“汛”而动,全力做好防汛工作
近日,出现持续降雨天气,安图县启动四级防汛应急响应,各部门(单位) -
注入“外脑”力量 长春市中级人民法院...
8月8日,长春市中级人民法院举行了第二批技术调查官的聘任仪式,正式聘 -
刘长俊离任东方中债1-5年政策性金融债
刘长俊离任东方中债1-5年政策性金融债---中国经济网北京8月7日讯近日,