[TS]学习总结

总结

TS8种基础类型

string、number、boolean、undefined、null、object、bigint、symbol

特俗类型:

void、never、any、unknown

  • void:用于函数没有返回值

  • never:用于函数抛出异常或函数内部死循环

  • any:任意类型

  • unknown:不知道什么类型

Array和函数类型定义:
let list:number[] = [1,2,3]
let list:string[] = ['a,'b','c']
let list:Array<number> = [1,2,3]
function add(x:number,y:number):number{
    return x+y;
}
元组、交叉类型、联合类型
//元组
let list:[number,string,boolean] = [1,'jack',true]

// 交叉类型
type User = { name: string }
type AgeType = { age: number }
let jack: User & AgeType = { name:'jack', age: 30 }

// 联合类型
let num:string | number = '1'
接口5种场景
interface Person {
    name: string;
    age?: number;
    [k:string]: string | number;
}


interface User extends Person{
    gender: 'male'
}
泛型使用
function identity<T>(num:T):T{
    return num;
}

identity<number>(10);
keyof、typeof、in使用
  • keyof 获取对象键

  • typeof 获取对象类型

  • in指定属性需要在某一个key中

interface Person{
    name: string;
    age: number;
}

type Keys = keyof Person; // Keys会得到:'name' | 'age'



const user = { name: 'jack', age: 30 }
type UserType = typeof user; // 会返回一个user类型,包含name和age


type UserType2 = {
    [k in Keys]: string;
}
// UserType2会约束属性必须包含name和age
TS学习方法
  • 每一个语法都要手写出来,理解没有偏差。

  • 项目当中反复使用。

  • 工作当中举一反三、活学活用。