1、声明:
let : 区块定义,解决var 声明中带来的作用域混淆问题
const : 声明常量,不可改变
2、类型:
数字: number
布尔: boolean
字符串: string
数组: array
元组: tupple 是一个特殊的数组,是固定长度,固定类型的数组,声明元组的时候一定要指明类型,(bug: 使用push() 可以突破元组的界限,无限给元组添加长度)
联合union :表示取值可以为多种类型中的一种。
例:let myFoavorite:string | number;
字面量:literal
枚举: enum
任意: any
unknow: (不保证类型,但能保证类型安全)
viod: 函数在没有任何返回的情况,就是一个viod类型
undefined : 未经初始化的值
never : 大部分用来处理异常
类型适配: <> 或者 as
3、函数类型
函数定义:
function add(arg1: number, arg2: number): number { return x + y; }
const add = (arg1: number, arg2: number): number => { return x + y; }
函数定义可选参数:可选参数只需在参数名后跟随一个?
即可
function add(arg1: number, arg2?: number): number { return x + y; }
const add = (arg1: number, arg2?: number): number => { return x + y; }
注意: 可选参数必须放在必选参数后面
默认参数:
const counter = (step = 1) => { count += step; };
剩余参数
const handleData = (arg1: number, ...args:number[]) => { console.log(args); };
handleData(1, 2, 3, 4, 5); // [ 2, 3, 4, 5 ]
4、对象类型
(以{}包括起来,用键值对的形式显示)
const person= {
name: "张三",
lastName: "刘",
age: 18
}
5、interface 接口类型 使用接口(Interfaces)来定义对象的类型。
例:
interface Person {
name: string,
age: number,
gender?: string | number // 用 ? 表示可有可无的属性
}
TS 接口 interface | 代码干燥计划
6、Class 类