Angular 笔记

一、关于泛型上的一些 小知识

1.1泛型中使用的关键字

  1. keyof
  • 该操作符可以用于获取某种类型的所有键,其返回类型是联合类型。
export interface IdleIni {
  idleTime: number;
  timeoutTime: number;
  pingTime: number;
}

interface IdleServiceSteupStringIni {
  idleServiceSetup: Record<keyof IdleIni, string>;
  // idleServiceSetup 的类型为 Record  ,这里Record  与 IdleIni 一样
  // keyof 获取 IdleIni 的键,值为string 
}
  • keyof 声明接口的键为 IdleIni 的键,值为string
    可以理解为
interface Record  {
  idleTime: string;
  timeoutTime: string;
  pingTime: string;
}
  1. Partial
  • Partial 类型转化。 能让接口里的属性变为可选的
export interface IdleIni {
  idleTime: number;
  timeoutTime: number;
  pingTime: number;
}

//变为
export interface IdleIni {
  idleTime?: number;
  timeoutTime?: number;
  pingTime?: number;
}
  1. Pick
type Pick<T, K extends keyof T> = {
   [key in k]: T[key]
}
  • 就是从一个复合类型中,取出几个想要的类型的组合,例如:
// 原始类型
interface TState {
    name: string;
    age: number;
    like: string[];
}
// 如果我只想要name和age怎么办,最粗暴的就是直接再定义一个(我之前就是这么搞得)
interface TSingleState {
    name: string;
    age: number;
}
// 这样的弊端是什么?就是在Tstate发生改变的时候,TSingleState并不会跟着一起改变,所以应该这么写
interface TSingleState extends Pick<TState, "name" | "age"> {};

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容