TypeScript 核心

类型推断

TS 会根据初始化时的赋值自动确定变量类型

let str = 'abc';
str = 10;

类型注解

使用 : 来主动确定变量类型

let str: string = 'abc';

类型断言

使用 as 主动确定返回类型

let numArr = [1, 2, 3];
const result = numArr.find((item) => item > 2) as number;
result * 5;

数据类型

let v1: string = 'abc'; // 字符串
let v2: number = 10; // 数字
let v3: boolean = true; // 布尔
let nu: null = null; // 空
let un: undefined = undefined; //未定义
let v4: string | null = null; // 多个基层类型
let v5: 1 | 2 | 3 = 3; // 指定具体值

let arr: number[] = [1, 2, 3]; // 数组
let arr1: Array<string> = ['a', 'b', 'c']; // 数组

let t1: [number, string, number?] = [1, '1', 2]; //元组。?代表设置为可选项

enum MyEnum { //枚举。将值映射为数字
  a,
  b,
  c,
}

函数

function MyFn(a = 10, b?: number, c?: boolean, ...rest: number[]): number {
  //设置变量和返回值的类型,如果没有返回值使用 void,?代表设置为可选项
  return 100;
}

接口

interface 定义接口

interface afObj {
  name: string;
  age: number;
}
const obj: afObj = {
  name: 'xx',
  age: 13,
};

type 自定义类型使用方式

type afUserName = string | number;
let a: afUserName = 'abc';

泛型

function myFn<T>(a: T, b: T): T[] {
  return [a, b];
}

function myFn<T, U>(a: T, b: U): (T | U)[] { 
  return [a, b];
}