TypeScript
《数据类型》
一、创建变量
TS 中创建变量有四要素:
- 声明变量的方式:var、let、const
- 变量的名称
- 变量的类型
- 变量的初始值
语法结构:
let 变量名: 数据类型 = 初始值;
二、数据类型
TS 中的数据类型分为以下几类:
- 基础类型:数字、字符串、布尔值
- null、undefined
- any、void
- 数组、元组
- 对象
- 枚举
- never
1、基础类型
let a: number = 1;
let b: string = "hello";
let c: boolean = true;
2、null、undefined(了解)
let d: undefined = undefined;
let e: null = null;
3、any、void
any 表示任意类型,void 表示没有任何类型。
let f: any = 1;
let g: void;
说明:
- 不建议频繁的使用 any;
- void 通常会用来设置当函数没有返回值时,返回值的类型;
4、数组、元组
TS 中要求数组中的元素必须是同一个类型。
let h: number[] = [1, 2, 3]
let i: string[] = ["1", "2", "3"]
let j: Array<number> = [1, 2, 3];
但是,TS 中还提供了一个元组的类型(了解),可以在数组中保存不同类型的数据:
let k: [number, string] = [1, "2"]
5、对象
在 TS 中,除了数字、字符串、布尔值、null 和 undefined 以外,其他类型都可以看作是对象:
let k: [number, string] = [1, "2"]
但是,在 {}
这种类型中,更推荐使用以下方式来约束数据类型:
let l: object = [];
let m: object = {
};
let n: object = function() {
}
可选属性
我们可以在对象属性的后面添加 ?
来设置可选属性:
let o: {
name: string, age: number, gender?: string } = {
name: '张三', age: 20, gender: '男' }
6、枚举
我们在前端开发中,经常会用数字来表示一些状态。例如:
- 在设置性别时,用 0 表示女性,1 表示男性,2 表示未知;
- 在筛选待办事项的状态时,0 表示全部,1 表示已完成,2 表示未完成;
- …
之所以选择用数字表示,是因为我们在进行判断时数字会很方便。但是数字并不能直观的表示出当前业务中对应的含义,我们在阅读代码的时候,就不能很直接的看明白每一个数字对应的状态。
这种情况下,就可以使用 TS 中的枚举类型来描述每个数字的含义。
enum Gender {
female = 0,
male = 1,
unknown = 2
}
const student: {
name: string, gender: number } = {
name: '张三', gender: Gender.male }
const person: {
name: string, gender: Gender } = {
name: '张三', gender: Gender.male }
枚举类型中,也可以不设置数字,默认会从 0 开始依次叠加。
enum Gender {
female,
male,
unknown
}
const student: {
name: string, gender: number } = {
name: '张三', gender: Gender.male }
const person: {
name: string, gender: Gender } = {
name: '张三', gender: Gender.male }
7、never
never 用来表示永不存在的值。通常用来设置报错的类型: