发布于 

typeScript 数据类型笔记

数据类型 | 元组

  • 概念:就是一个规定了元素数量和每个元素类型的“数组”,而每个元素的类型,可以不相同
  • 语法:
1
2
// let 元组名: [类型1, 类型2, 类型3] = [值1, 值2, 值3];
let tup1: [string, number, boolean] = ['哈哈~~', 18, true];

数据类型 | 枚举

  • 问题:性别标识

image-20210412165525442

  • 声明语法
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
//	enum 枚举名 {
// 枚举项1 = 枚举值1,
// 枚举项2 = 枚举值2,
// ...
// }


// 声明性别枚举
enum Gender {
Boy = 1,
Girl = 2,
Unknown = 3
}
// 枚举项一般用英文和数字,而枚举值用整形数字

// 创建 用户性别变量
let usrSex: Gender = Gender.Boy;

// 判断 变量中的性别是否为 Boy
if (usrSex == Gender.Boy) {
console.log(usrSex); // 1
} else {
console.log(usrSex) // 2 or 3
}
  • 使用默认枚举值
1
2
3
4
5
6
7
8
9
10
11
12
//	enum 枚举名 {
// 枚举项1,
// 枚举项2,
// ...
// }

// 枚举值将自动生成从 0 开始的数值
enum GunType {
M4A1, // -> 0
AK47, // -> 1
Goza // -> 2
}

数据类型 | void

  • 概念:void 代表没有类型,一般用在无返回值函数
  • 语法
1
2
3
4
5
6
7
8
9
10
function sayHi1(): string {
return 'hi,你好啊'
}
let re1 = sayHi1();


function sayHi1(): void {
console.log('讨厌');
}
sayHi2();

数据类型 | 联合类型

  • 概念 :表示取值可以为多种类型中的一种
1
// let 变量名:变量类型1 | 变量类型2 = 值;
  • 接收 prompt() 函数的返回值
image-20210412173113138
  • 要么是字符串要么是null,这个时候就可以用联合类型
1
2
let dName: string | null  = prompt('请输入小狗狗名字');
console.log('hello + dName');

数据类型 | 返回值和参数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
// 函数 返回值类型
function sayHi(): string {
return 'hi~hello'
}
let res: string = sayHi();

// 函数 形参类型
function from(cityName: string): void {
// void 无返回值
console.log('你来自哪里');
console.log(`我来自${cityName}`);
}
// ts 中 实参 必须和 形参 的 类型一致 数量一致
from('加拿大');
//from(); // 报错没传参

image-20210412175333783

  • 函数必须定义 返回值类型,如果没有返回值, 则定义返回值类型为 void

数据类型 | 可选参数

  • 函数 可选参数
1
2
3
4
5
6
7
// 可选参数的实参可传也可不传,只需要在形参后面加一个问号即可
// function 函数名(形参?: 类型): 返回值类型 {
// }

// !表示一定存在
// function 函数名(形参!: 类型): 返回值类型 {
// }
  • 调用

    传参 函数名();

    不传参 函数名(实参值);

数据类型 | 默认值

  • 函数 默认值 形参1?: 类型 = 默认值1 带默认值的参数,本身也是可选参数
1
2
3
function test(city: string = '加拿大', phone: number = 1): String {
return 'yes'
}
  • 调用

    image-20210412181303380

Record

Record 用于定义一个对象的键值对

1
2
3
4
5
6
7
8
9
10
11
interface PageInfo {
title: string;
}

type Page = "home" | "about" | "contact";

const nav: Record<Page, PageInfo> = {
home: { title: "home" },
about: { title: "about" },
contact: { title: "contact" }
};

Record 后面的泛型就是对象键和值的类型。

示例:比如我需要一个对象,有 ABC 三个属性,属性的值必须是数字,那么就这么写

1
2
3
4
5
6
type keys = 'A' | 'B' | 'C'
const result: Record<keys, number> = {
A: 1,
B: 2,
C: 3
}

结语

每天下班累的只想躺着什么也不干,哪怕这一天其实没有很忙,但是那种疲惫却是避开肌肉筋骨,直到心神


本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。

本站由 @xiangshu 创建,使用 Stellar 作为主题。