为什么使用TypeScript
TypeScript是由微软开源的一种JavaScript超集语言,它不仅包含当前Javascript的特性,而且实现了esnext提案。TypeScript的宗旨是为JavaScript提供可靠的类型检查,避免出现意大利面条式的代码,在大型的项目中让源码更加可控。
优势 | 劣势 | |
---|---|---|
TypeScript | 强类型 IDE支持好 编码规范 | 私有标准 使用较少 语法差异小 必须编译 |
Javascript | 官方标准 应用广泛 | 弱类型 IDE支持差 |
CoffeeScript | 强类型 高级特性支持 | 特性es6支持 语法差异大 必须编译 |
在TypeScript出现之前,JavaScript也出现了多种方言,但是语法都与JavaScript差异太大,使用门槛过高,对JavaScript第三方库不兼容。TypeScript语法与JavaScript相似,入门门槛极低,对于JavaScript编写的第三方类库通过提供.d.ts type文件兼容,目前较为流行的类库都可以兼容TypeScript。
JavaScript是弱类型语言,而且由于语法过于灵活,在实际编码中很容易导致错误出现,特别是在大型的项目中。TypeScript很好的避免了这些问题,对于数据描述提供interface,这也是TypeScript的核心所在。
JavaScript在声明函数时,参数没有类型,而且返回也没有类型,使用和维护都带来一定的困难。
function add(a, b) {
return a + b;
}
TypeScript则需要声明函数的参数和返回值,在变量初始化的时候需要声明类型,也可以通过类型推导自动声明,相较与JavaScript并没有带来多大的工作量。
let a = 1;
let b: number = 1;
function add(a: number, b: number): number {
return a + b;
}
Typescript的interface可以很方便的声明数据的结构,可以通过?声明哪些数据是可选的。
interface User {
name: string;
age?: number;
}
const u: User = {name: 'name', age: 1}; // 正确
const u: User = {name: 'name'}; // 正确
const u: User = {name: 1}; // 错误提示类型不匹配
const u: User = {}; // 错误提示name不存在
在app开发的过程中,情况往往比web开发更加复杂,而且需要不断的重构,所以使用TypeScript是一个非常不错的选择。
相关文章
- 【技术种草】cdn+轻量服务器+hugo=让博客“云原生”一下
- CLB运维&运营最佳实践 ---访问日志大洞察
- vnc方式登陆服务器
- 轻松学排序算法:眼睛直观感受几种常用排序算法
- 十二个经典的大数据项目
- 为什么使用 CDN 内容分发网络?
- 大数据——大数据默认端口号列表
- Weld 1.1.5.Final,JSR-299 的框架
- JavaFX 2012:彻底开源
- 提升as3程序性能的十大要点
- 通过凸面几何学进行独立于边际的在线多类学习
- 利用行动影响的规律性和部分已知的模型进行离线强化学习
- ModelLight:基于模型的交通信号控制的元强化学习
- 浅谈Visual Source Safe项目分支
- 基于先验知识的递归卡尔曼滤波的代理人联合状态和输入估计
- 结合网络结构和非线性恢复来提高声誉评估的性能
- 最佳实践丨云开发CloudBase多环境管理实践
- TimeVAE:用于生成多变量时间序列的变异自动编码器
- 具有线性阈值激活的神经网络:结构和算法
- 内网渗透之横向移动 -- 从域外向域内进行密码喷洒攻击