这是我参与「第四届青训营 」笔记创作活动的的第9天
什么是TypeScript?
TypeScript的发展史
TypeScript是微软开发的一个开源的编程语言,通过在JavaScript的基础上添加静态类型定义构建而成。TypeScript通过TypeScript编译器或Babel转译为JavaScript代码,可运行在任何浏览器,任何操作系统。
TypeScript添加了很多尚未正式发布的ECMAScript新特性(如装饰器)。2012年10月,微软发布了首个公开版本的TypeScript,2013年6月19日,在经历了一个预览版之后微软正式发布了正式版TypeScript。当前最新版本为TypeScript 4.7。
什么是TypeScript?
- Jscript
- 动态类型:动态类型语言是运行期间才做数据类型检查的语言,即动态类型语言编程时,永远不用给任何变量指定数据类型。该语言会在第一次赋值给变量时,在内部将数据类型记录下来。例如: JavaScript 、 Python 、 PHP 。
优点:方便阅读,不需要写非常多的类型相关的代码;
缺点:不方便调试,命名不规范时会造成读不懂,不利于理解等。 - 弱类型语言:弱类型正好与强类型相反,编译时的检查很弱,它仅能区分指令和数据,弱类型语言允许变量类型的隐式转换,允许强制类型转换等,如字符串和数值可以自动转化。
- TypeScript
- 静态类型:静态类型语言是编译期间做检查数据类型的语言,即写程序时要声明所有变量的数据类型,是固定的。使用数据之前,必须先声明数据类型( int , float , double 等)。相当于使用之前,首先要为它们分配好内存空间。
例如: C / C ++是静态类型语言的典型代表,其他的静态类型语言还有 C #、 JAVA 等。
优点:结构非常规范,便于调试,方便类型安全。可读性加强,可维护性加强
缺点:为此需要写更多类型相关代码,较复杂。 - 弱类型语言
基本语法
TypeScript 程序由以下几个部分组成:
- 模块
- 函数
- 变量
- 语句和表达式
- 注释
基础类型
- 任意类型 any :声明为 any 的变量可以赋予任意类型的值
- 数字类型 number:双精度 64 位浮点值。它可以用来表示整数和分数
- 字符串类型 string:一个字符系列,使用单引号(’)或双引号(")来表示字符串类型。反引号(`)来定义多行文本和内嵌表达式
- 布尔类型 boolean:表示逻辑值:true 和 false
- 数组类型 :声明变量为数组
对象类型
对象是包含一组键值对的实例。 值可以是标量、函数、数组、对象等
函数类型
函数是一组一起执行一个任务的语句。
您可以把代码划分到不同的函数中。如何划分代码到不同的函数中是由您来决定的,但在逻辑上,划分通常是根据每个函数执行一个特定的任务来进行的。
函数声明告诉编译器函数的名称、返回类型和参数。函数定义提供了函数的实际主体。
- 函数定义:函数就是包裹在花括号中的代码块,前面使用了关键词 function
- 调用函数:函数只有通过调用才可以执行函数内的代码。
- 函数返回值:有时,我们会希望函数将执行的结果返回到调用它的地方。通过使用 return 语句就可以实现。在使用 return 语句时,函数会停止执行,并返回指定的值。
- 带参函数:在调用函数时,您可以向其传递值,这些值被称为参数。这些参数可以在函数中使用。您可以向函数发送多个参数,每个参数使用逗号 , 分隔。
数组类型
数组对象是使用单独的变量名来存储一系列的值。
- Array对象:Array 对象的构造函数接受以下两种值:
- 表示数组大小的数值。
- 初始化的数组列表,元素使用逗号分隔值。
高级类型
TypeScript 联合类型
- 联合类型(Union Types)可以通过管道(|)将变量设置多种类型,赋值时可以根据设置的类型来赋值。
注意:只能赋值指定的类型,如果赋值其它类型就会报错。
- 类型保护与类型守卫
类型守卫:定义一个函数,他的返回值是一个类型谓词,生效范围为子作用域。