Typescript使用(持续更新)

基础类型
  • boolean: 代表布尔类型的值,只能为 true 或 false。

  • number: 代表数字类型的值,包括整数和浮点数。

  • string: 代表字符串类型的值,使用单引号或双引号括起来的字符序列。

  • enum: 枚举类型,用于定义一组具名的常量,可以通过枚举成员的名称来引用对应的值。

  • any: 代表任意类型,可以为任何类型的值。

  • unknown: 类似于 any 类型,但是更加安全。当你不确定一个值的类型时,可以将它赋值为 unknown,必须进行类型检查或类型断言后才能使用。

  • void: 代表没有返回值的函数的返回类型。

  • never: 代表永远不会返回的函数的返回类型,或者表示抛出异常或进入无法结束的循环。

  • 数组类型: 可以使用类型加上中括号 [] 来表示一个数组,例如 number[] 表示数字类型的数组。

  • 元组类型: 元组用于表示一个固定长度的数组,每个元素可以有不同的类型。例如,[number, string] 表示包含一个数字和一个字符串的元组。

类型声明
  • 类型声明是TS非常重要的一个特点

  • 通过类型声明可以指定TS中变量(参数、形参)的类型

  • 指定类型后,当为变量赋值时,TS编译器会自动检查值是否符合类型声明,符合则赋值,否则报错

  • 简而言之,类型声明给变量设置了类型,使得变量只能存储某种类型的值

  • 语法:

let 变量: 类型;

let 变量: 类型 = 值;

function fn(参数: 类型, 参数: 类型): 类型{
    ...
}

  • 自动类型判断

    • TS拥有自动的类型判断机制

    • 当对变量的声明和赋值是同时进行的,TS编译器会自动判断变量的类型

    • 所以如果你的变量的声明和赋值时同时进行的,可以省略掉类型声明

  • number

let decimal: number = 6;
let hex: number = 0xf00d;
let binary: number = 0b1010;
let octal: number = 0o744;
let big: bigint = 100n;

  • boolean

let isDone: boolean = false;

  • string

let color: string = "blue";
color = 'red';

let fullName: string = `Bob Bobbington`;
let age: number = 37;
let sentence: string = `Hello, my name is ${fullName}.

I'll be ${age + 1} years old next month.`;

  • 字面量

    • 也可以使用字面量去指定变量的类型,通过字面量可以确定变量的取值范围

let color: 'red' | 'blue' | 'black';
let num: 1 | 2 | 3 | 4 | 5;

  • any

let d: any = 4;
d = 'hello';
d = true;

  • unknown

let notSure: unknown = 4;
notSure = 'hello';

  • void

let unusable: void = undefined;

  • never

function error(message: string): never {
  throw new Error(message);
}

  • object(没啥用)

let obj: object = {};

  • array

let list: number[] = [1, 2, 3];
let list: Array<number> = [1, 2, 3];

  • tuple

let x: [string, number];
x = ["hello", 10]; 

  • enum

enum Color {
  Red,
  Green,
  Blue,
}
let c: Color = Color.Green;

enum Color {
  Red = 1,
  Green,
  Blue,
}
let c: Color = Color.Green;

enum Color {
  Red = 1,
  Green = 2,
  Blue = 4,
}
let c: Color = Color.Green;

高级类型
1.联合类型 |

使用 | 符号表示,可以将多个类型组合到一起,表示变量可以是多种类型之一。例如,number | string 表示一个变量可以是数字或字符串类型。

2.交叉类型 &

使用 & 符号表示,可以将多个类型合并到一起,表示变量需要同时具备多种类型的特性。例如,A & B 表示一个变量同时具有类型 A 和类型 B 的特性。

3.类型断言

类型断言(Type Assertion): 类型断言用于手动指定变量的类型,通过将变量断言为特定类型,可以获得更精确的类型检查。有两种形式:尖括号语法 <类型>值 和 as 语法 值 as 类型。例如,let x: any = 'Hello'; let strLength: number = (x as string).length; 在这个例子中,我们通过类型断言将变量 x 断言为字符串类型,然后获取它的长度。

4.类型别名(type VS interface)

定义:给类型起个别名

相同点:

1.都可以定义对象或函数

2.都允许继承

差异点:

1.interface是TS用来定义对象,type是用来定义别名方便使用;

2.type可以定义基本类型,interface不行

3.interface可以合并重复声明,type不行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值