banner
SlhwSR

SlhwSR

热爱技术的一名全栈开发者
github
bilibili

tsの実装によるさまざまなタイプのツール

  1. Parital の実装:
typeA={name:string,age:string}

type Parital<T>={
[p in keyof T]?:T[p]
}
// つまり type C=Parital<A>
  1. pick の実装
type example={name:string,age:number,address:string}
type Pick<T,U extends keyof T>={
  [P in U]=T[P]
}
const tiqu:Pick<example,"name"|"age">={}
  1. Extract の実装
type Extract<T,U>=T extends U? T: never

type A=string | number | boolean
type B=string | number

type C=Extract<A,B>
const result:C="214214"
const result2:C=444
  1. Exclude の実装、Extract と同じアイデア
type Exclude<T,U>=T extends U?never :T
type A=string | number | boolean
type B=string | number

type C=Exclude<A,B>
const result:C="214214"  //エラー
const result2:C=true
  1. Record の実装
type Record<K extends string|number|symbol,V>={
[P in K]:V
}
type EX=Record<'name'|'age',string|number>
const res:EX={name:"张三",age:999}
読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。