0409 手打基础丸

91 阅读1分钟

手打基础丸 🧆 => 精选基础知识,经过多道工序精心制作而成,口感鲜嫩多汁。一口咬下,香气四溢,加上传统前端风味,令人回味无穷...... 助力食用者厚积薄发,夯实根基进阶上层。

TS中的Function类型?

ts中可以使用function关键字创建有名字的函数和匿名函数

function add(x : number, y : number){
  return x+y
}

// 匿名函数
let f = function (x, y){return x + y}

// 允许通过接口来定义函数类型
interface f{
  (x: number, y:number): number
}
let add : f = (x: number, y: number) => x+y;

TS中的any类型?

当不确定某个变量的具体类型或者想跳过类型检查则可以使用any关键字。

let x:any;

使用any类型可以暂时跳过ts的类型检查,但是同样面临着安全问题

TS中unknown和any类型区别?

any可以表示任意类型值,不受类型检查约束

unknown只是表示unknown类型,受类型检查约束也更安全

TS中的泛型?

泛型可以使类型参数化,根据传入的参数来灵活定义类型。

function identity<T>(arg: T): T {
    return arg;
}
let output = identity<string>("myString");  // type of output will be 'string'

TS中infer关键字?

可以通过已知类型推导出泛型参数

type numberType<T> = T extends (infer P) ? P :  any // 输出类型T的类型

infer只能在extends右边使用