typescript - Varför ändras typen i denna enkla map?


Varför ändrar denna händelselösa karta typen på arrayen?

Jag gör en mer komplicerad karta än denna men målet är att hålla typen densamma genom kartan.

  const x: type1[] | type2[]=[]; // x has type type1[] | type2[]
  const y = x.map(item=>item);   // y has type (type1 | type2)[]

Jag använder TypeScript 4.3.5.

Svar #1

Detta är signaturen för Array<T>#map:

map<U>(callbackfn: (value: T, index: number, array: T[]) => U, thisArg?: any): U[];

T här antas vara type1 | type2, och U antas vara samma som T. Sedan returnerar metoden U[] vilket är (type1 | type2)[].

Relaterade artiklar