这是我参与「第四届青训营 」笔记创作活动的第5天
今天所学习的是TypeScript,这是后来兴起的一门语言。
TypeScript简介
TypeScript是微软开发的一个开源的编程语言,通过在JavaScript的基础上添加静态类型定义构建而成。TypeScript通过TypeScript编译器或Babel转译为JavaScript代码,可运行在任何浏览器,任何操作系统。
TypeScript背景
TypeScript 起源于使用JavaScript开发的大型项目 。由于JavaScript语言本身的局限性,难以胜任和维护大型项目开发。因此微软开发了TypeScript ,使得其能够胜任开发大型项目。
TypeScript发展历史
2010 – 微软团队开始开发
2012 – 第一个公开版本发布(TypeScript 0.8)
2013 – TypeScript 0.9 发布,支持泛型了
2014 – TypeScript 1.0 发布,Visual Studio 2013 默认支持 TypeScript 了。同时,源码从 CodePlex 迁移到 Github
2017 – TypeScript 2.1 发布
2018 – TypeScript 3.2 发布
TypeScript是静态类型,静态类型有很多的好处。
静态类型的好处
- 可读性增强:基于语法解析TSDoc,ide增强
- 可维护性增强:在编译阶段暴露大部分错误
- 多人合作的大型项目中,获得更好的稳定性和开发效率
TypeScript的基本类型
TypeScript的基本类型是由JavaScript中的类型:boolean, bigint, null, number, string, symbol, undefined加上新增的any,never,null组成。
TypeScript的复杂类型
对于简单类型来说,限制字段的值只能是同一种类型,而复杂类型就是限制字段可以是多种类型中的其中一个。
我们可以通过两种形式来对复杂类型进行定义:联合,泛型。
联合
使用联合类型的方式很简单,在多个类型之间使用|进行连接,使用或的语义即可,比如我们希望一个字段既可以是数字,又可以是字符串:
例如:
let multi: number | string = 1;
multi = 'abc';
泛型
TS中的泛型大多数情况是使用在函数上(也可以使用在类上),我们可以把泛型理解为一种特殊的参数,在调用函数的时候,可以显式或隐式的传入类型。
type关键字
type定义:type又叫类型别名(type alias),作用是给一个类型起一个新名字,不仅支持interface定义的对象结构,还支持基本类型、联合类型、交叉类型、元组等任何你需要手写的类型。
除了直接使用类型关键字来限制变量的类型之外,我们还可以使用type关键字来定义类型。
例如:
type a = number;
type b = string;
这样也可以直接进行定义。
除此之外,type定义的变量,还可以被赋值为某些具体的值,表示在后续给变量赋值的时候,只能在这些值之间进行选择。
总结:以上就是TypeScript的基本语法。