【Typescript综合】模块化开发

简介: 【Typescript综合】模块化开发

模块化开发


模块化:每个文件可以是一个独立的模块,支持ES Module,也支持CommonJS


之前搭建过typescript的编译环境,我们现在直接在搭建好的编译环境下使用模块化开发。

搭建方式可以看搭建typescript编译环境


命名空间namespace


命名空间在TypeScript早期时,称之为内部模块,主要目的是将一个模块内部再进行作用域的划分,防止一些命名冲突的问题

命名空间内部的属性或者方法等,都需要export出去,不然外部都是无法使用的。一般开发不习惯的话可以选择不使用。

image.png

类型查找


我们在编写TS代码中,有时候引入第三方库不会报错,有时候又会报错,这个时候就是需要我们有类型声明(declare)

我们之前编写的typescript文件都是 .ts 文件,这些文件最终会输出 .js 文件,也是我们通常编写代码的地方; p 还有另外一种文件 .d.ts 文件,它是用来做类型的声明(declare)。 它仅仅用来做类型检测,告知typescript我们有哪些类型。


typescript会在哪里查找我们的类型声明呢?


  • 内置类型声明;
  • 外部定义类型声明;
  • 自己定义类型声明;


1. 内置声明


内置类型声明通常在我们安装typescript的环境中会带有的;

https://githu.com/microsoft/TypeScript/tree/main/lib

2. 外部定义类型声明


外部类型声明通常是我们使用一些库(比如第三方库)时,需要的一些类型声明下面介绍两种方式声明:

  • 方式一:在自己库中进行类型声明(编写.d.ts文件),比如axios
  • 方式二:通过社区的一个公有库DefinitelyTyped存放类型声明文件

该库的GitHub地址:https://github.com/DefinitelyTyped/DefinitelyTyped/

该库查找声明安装方式的地址:https://www.typescriptlang.org/dt/search?search=


3. 自定义声明


在第三方库是一个纯JavaScript的话,没有对应的声明文件,就需要我们自定义声明,自定义一个.d.ts文件。比如lodash

声明模块

微信图片_20221012165225.png

声明变量-函数-类

微信图片_20221012165233.png

声明文件

微信图片_20221012165257.png

声明命名空间

微信图片_20221012165315.png

相关文章
|
前端开发 Java Maven
Springboot创建项目(idea版本)
Springboot创建项目(idea版本)
572 0
|
3月前
|
人工智能 监控 大数据
AR眼镜在警务安防的应用方案
针对当前社会治安防控难题,基于阿法龙XR云平台打造的云眼AI警务模块,融合AR与AI技术,构建“感知-分析-指挥-执行”一体化防控体系。通过AR智能眼镜实现人脸识别、车牌识别、人证比对、远程调度、执法记录等功能,提升执法效率与智能化水平,助力警务模式转型升级。
|
6月前
|
数据采集 人工智能 数据可视化
体育动画直播怎么做出来的?揭秘从数据到卡通的魔法过程!
体育动画直播是一种结合实时数据、游戏引擎与AI技术的创新形式,可将真实比赛数据转化为动画呈现。它支持自由视角观看、100%还原比赛细节,适用于足球/篮球可视化直播、电竞虚拟形象直播等场景。制作流程包括数据采集(如球员定位、生物力学数据)、3D建模(创建虚拟球场与球员模型)、动画生成(关键帧或AI驱动动作)及实时渲染播出。开发者需注意数据清洗、性能优化与版权问题,未来还将融入元宇宙技术,带来全息、VR沉浸式体验。这是一场体育与科技的完美碰撞!
|
7月前
|
缓存 NoSQL 关系型数据库
美团面试:MySQL有1000w数据,redis只存20w的数据,如何做 缓存 设计?
美团面试:MySQL有1000w数据,redis只存20w的数据,如何做 缓存 设计?
美团面试:MySQL有1000w数据,redis只存20w的数据,如何做 缓存 设计?
淘宝API接口( item_detail - 淘宝商品详情查询)
淘宝商品详情查询 API(item_detail)用于获取淘宝商品的详细信息。请求参数包括商品唯一 ID(num_iid)和是否获取促销价(is_promotion)。响应参数包含商品标题、价格、库存、图片链接、品牌等详细信息。
|
11月前
|
SQL 存储 大数据
Flink 基础详解:大数据处理的强大引擎
Apache Flink 是一个分布式流批一体化的开源平台,专为大规模数据处理设计。它支持实时流处理和批处理,具有高吞吐量、低延迟特性。Flink 提供统一的编程抽象,简化大数据应用开发,并在流处理方面表现卓越,广泛应用于实时监控、金融交易分析等场景。其架构包括 JobManager、TaskManager 和 Client,支持并行度、水位线、时间语义等基础属性。Flink 还提供了丰富的算子、状态管理和容错机制,如检查点和 Savepoint,确保作业的可靠性和一致性。此外,Flink 支持 SQL 查询和 CDC 功能,实现实时数据捕获与同步,广泛应用于数据仓库和实时数据分析领域。
7287 32
|
运维 监控 网络协议
网络诊断必备:Ping、Traceroute、Wireshark的实用技巧详解
网络诊断必备:Ping、Traceroute、Wireshark的实用技巧详解
2850 0
|
SQL 运维 Java
SpringBoot集成Flyway
Flyway:官方解释:Flyway 将 DevOps 扩展到您的数据库,以加速软件交付并确保代码质量。从版本控制到持续交付,Flyway 以应用程序交付流程为基础,实现数据库部署自动化。 官方解释总是那么拗口和不说人话,当然通过加粗的关键字我们基本也能够了解到Flyway的功能特性。 通俗来说,Flyway可以作为数据库迁移工具服务到我们的应用程序升级发布流程中,减少人为处理sql脚本带来的繁琐和易出错问题。 例如,当我们的一个业务微服务从1.5.0升级到1.5.1的时候涉及到数据库的改动(DDL、DML)可以交给Flyway处理,我们无需关心。
1724 0
|
索引 Python
Python高维变量选择:SCAD平滑剪切绝对偏差惩罚、Lasso惩罚函数比较
Python高维变量选择:SCAD平滑剪切绝对偏差惩罚、Lasso惩罚函数比较
|
安全 NoSQL 网络安全
云服务器的安全设置常识
云服务器的安全设置常识
533 1