首页 > 解决方案 > Typescript 将 ArrayLike 泛型类型解构为基本类型,例如给定 A find I in:A = ArrayLike

问题描述

标签: typescripttypescript-typingstypescript-genericstypescript-types

解决方案


你可以试试infer

type ElementType<T extends ArrayLike<unknown>> = T extends ArrayLike<infer U>? U : never;

class Test<I extends ArrayLike<unknown>> {
  arr!: I;
  current!: ElementType<I>;
}

例子:

let foo = new Test<string[]>(); 
foo.arr; // type string[]
foo.current; // type string

推荐阅读