TypeScript 可以编译成纯 JavaScript,编译出来的 JavaScript 可以运行在任何浏览器上。
一、基础语法
1、基础类型
- 数字类型(number):双精度 64 位浮点值。它可以用来表示整数和分数。
- 字符串类型(string):使用单引号(')或双引号(")来表示。反引号(`)来定义多行文本和内嵌表达式。
- 数组类型(无):声明变量为数组。
- 元组(无):元组类型用来表示已知元素数量和类型的数组,各元素的类型不必相同,对应位置的类型需要相同。
- 枚举(enum):枚举类型用于定义数值集合。
- void(void):用于标识方法返回值的类型,表示该方法没有返回值。
- null(null):表示对象值缺失。
- undefined(undefined):用于初始化变量为一个未定义的值。
- never(never):never 是其它类型(包括 null 和 undefined)的子类型,代表从不会出现的值。
(1)联合类型
可以通过管道(|)将变量设置多种类型,赋值时可以根据设置的类型来赋值。
只能赋值指定的类型,如果赋值其它类型就会报错。
Type1|Type2|Type3
2、变量
(1)变量声明
TypeScript 遵循强类型,如果将不同的类型赋值给变量会编译错误。语法格式:
var [变量名] : [类型] = 值;
var [变量名] : [类型]; //变量值会设置为 undefined
var [变量名] = 值; //该变量可以是任意类型
var [变量名]; //类型可以是任意类型,默认初始值为 undefined
(2)类型断言
用来手动指定一个值的类型,即允许变量从一种类型更改为另一种类型。语法格式:
<类型>值 或 值 as 类型
(3)作用域
- 全局作用域 − 全局变量定义在程序结构的外部,它可以在你代码的任何位置使用。
- 类作用域 − 这个变量也可以称为 字段。类变量声明在一个类里头,但在类的方法外面。 该变量可以通过类的对象来访问。类变量也可以是静态的,静态的变量可以通过类名直接访问。
- 局部作用域 − 局部变量,局部变量只能在声明它的一个代码块(如:方法)中使用。
3、运算符
与JavaScript相同
二、控制语句
1、条件语句
- if 语句 - 只有当指定条件为 true 时,使用该语句来执行代码
- if...else 语句 - 当条件为 true 时执行代码,当条件为 false 时执行其他代码
- if...else if....else 语句- 使用该语句来选择多个代码块之一来执行
- switch 语句 - 使用该语句来选择多个代码块之一来执行
2、循环语句
for循环
for...in循环 - 用于一组值的集合或列表进行迭代输出。
for…of 、forEach、every 和 some 循环
for...of 语句创建一个循环来迭代可迭代的对象。在 ES6 中引入的 for...of 循环,以替代 for...in 和 forEach() ,并支持新的迭代协议。for...of 允许你遍历 Arrays(数组), Strings(字符串), Maps(映射), Sets(集合)等可迭代的数据结构等。
while循环
do...while循环
三、函数
语法格式:
function function_name() { // 执行代码 } 带返回值: function function_name():return_type { // 语句 return value; } 带参数: function func_name( param1 [:datatype], param2 [:datatype]) { } 匿名函数: var res = function( [arguments] ) { ... } Lambda 函数: ( [param1, param2,…param n] )=>statement;