版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第7章名称空间和模块TypeScript入门与全栈式网站开发实战TypeScriptProgramming7.1名称空间目录/CONTENTS7.1.1定义名称空间和导出资源7.2模块模块化是指将程序划分到多个模块文件中,每个模块文件负责完成特定的功能。名称空间则是将相关的类、接口、函数和常量等资源分组。7.1.2名称空间嵌套7.1.3跨文件访问名称空间内资源7.2.1普通脚本资源全局可见7.2.3模块导出多个资源7.2.5导入变量的只读特征7.2.2模块导出默认资源7.2.4同时导出默认资源和普通资源7.2.6导出导入的其他语法7.2.7CommonJS规则下模块的导出导入7.3实战闯关——名称空间和模块7.1PART名称空间7.1名称空间用于解决资源(变量、常量、函数、类型别名、类、接口等)的重名冲突问题,若有重名冲突时,用完整名称“名称空间名.资源名”加以区分。7.1.1定义名称空间和导出资源用namespace定义名称空间,用export将名称空间内资源导出来,以便于在名称空间外部使用namespace名称空间名{export资源//变量、常量、函数、类型别名、类、接口
......}外部访问名称空间内导出资源:名称空间.资源名7.1.2名称空间嵌套namespaceCom.Abc{exportconstdescp='abc公司出品'exportnamespaceCommons.Tools{exportconstdescp='通用型工具'exportfunctionzipValidate(zip:string):boolean{returnzip.length==6&&parseInt(zip).toString()===zip}}}7.1名称空间7.1.3跨文件访问名称空间内资源应先使用import从ts文件中导入名称空间,然后再访问名称空间中的资源。import{名称空间}from"ts文件路径"//不带.ts后缀例:import{Tools}from"./MyTools"letisZip=Tools.zipValidate('201299')7.2PART模块7.2模块
主流使用的模块规则有2种:CommonJs模块(服务器端)和ES模块(前端,本书ES模块为主)7.2.1普通脚本资源全局可见.ts文件中若没有import或export关键字,则该文件为普通脚本,普通脚本文件中的资源在程序中全局可见。即,在同一文件中的任何位置直接访问,也可在其他文件中直接访问。7.2.2模块导出默认资源可用exportdefault命令,将模块中的单个资源设置为默认资源进行导出。一个模块文件中最多有一个默认资源。exportdefault资源import接收名(任意)
form模块名7.2.3模块导出多个资源exportletpi=3.14exportfunctionmin(a:number,b:number):{returna<b?a:b}exportclassCircle{...}import{pi,min,Circle}from'./exports'7.2模块
7.2.4同时导出默认资源和普通资源exportdefaultfunctionhello(){console.log("hello")}exportconstPI=3.14exportletradius=17.2.5导入变量的只读特征import导入的原始类型变量(如number、string、boolean等)是只读的。但导入的引用类型变量(如对象、数组等),其引用值不可变,但属性值可改。letpi:number=3.14classCircle{constructor(publicradius:number){}}letc0=newCircle(1)export{pi,c0}importmyFuncfrom'./exports'import{PI,radius}from'./exports'import{pi,c0}from'./out'//pi=3.1415//修改报错Cannotassignto'pi'becauseitisanimport.c0.radius=107.2模块
7.2.6导出导入的其他语法在导出和导入资源时,都可用as换名1.资源换名用“import*as对象名from模块名”方式,导入模块中所有资源。用“对象名.资源”方式来访问导入的资源。2.导入所有资源outA.ts,导出变量资源eexportlete=2.718outB.ts,导出变量资源piexportletpi=3.14out.ts(聚合模块),将outA和outB中导出资源聚合起来,统一导出:
export*from'./outA'export{pi}from'./outB'//import*asoutfrom'./out'3.用聚合模块统一导出其他模块中资源module.ts,导出变量:exportletpi=3.14exportlete=2.718call.ts,动态导入模块(module.ts文件)
import('./module').then((md)=>{console.log(md.e,md.pi)})4.动态导入模块用函数Promise.all([import('./module1’),...])动态导入多个模块模块文件module1.ts:exportletpi=3.14模块文件module2.ts:exportlete=2.718call.ts,用Promise.all()同时动态导入module1和module2模块:
Promise.all([import('./module1'),import('./module2')]).then(([module1,module2])=>{console.log(module1.pi,module2.e)})5.用Promise.all()同时导入多个模块7.2模块
7.2.7CommonJS规则下模块的导出导入1.使用module.exports或exports可导出CommonJS模块资源
module.exports={//用module.exports语法
e:2.718,abs:(n:number)->{returnn<0?-n:n}}exports.pi=3.14//用exports语法2.使用require可导入CommonJS模块导出的资源
letmath=require('./math’)math.pi用module.exports或exports导出用require函
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2023肺亚实性结节外科管理进展共识解读课件
- 边检安全培训课件
- 手术医生技能培训方案
- 辨色力培训课件
- 车队安全培训模板下载课件
- 车队安全人员培训内容课件
- 车间质量安全培训会课件
- 车间级安全教育课件
- 2025年国有资产清查盘点总结(3篇)
- 2026年内科医生年度工作总结
- 2026长治日报社工作人员招聘劳务派遣人员5人备考题库附答案
- 四省天一联考2025-2026学年高三上学期1月月考物理试题
- 2026年【招聘备考题库】黑龙江省生态环保集团有限公司面向社会公开招聘管理人员备考题库及1套完整答案详解
- 2026国企综合基础知识题库(附答案)
- 王昭君课件教学课件
- 2025年福建泉州惠安县宏福殡仪服务有限公司招聘5人笔试考试参考题库及答案解析
- 2026年教师资格之中学教育知识与能力考试题库300道含答案(a卷)
- 肝硬化顽固性腹水个案护理
- 2026年上半年西藏省中小学教师资格考试(笔试)备考题库附答案(培优a卷)
- 《短视频制作与运营》教案 项目5 短视频剪辑 (剪映)
- 2025年11月5日更新的REACH第35批251项高度关注物质SVHC清单
评论
0/150
提交评论