Cum să extragi un argument varargs dintr-un tip record în TypeScript?
Am variabila x definită după cum urmează:
function foo (a: string, ...nums: number[]): string {
return a;
}
const x: Parameters<typeof foo>
// Inferred: const x: [string, ...number[]]
Acum, vreau să extrag șirul și numerele cu tipurile corecte. Pentru șir, am:
const sExplicit: Parameters<typeof foo>[0] //easy to specify
const sInferred = x[0] //type inferred correctly
Vreau să declar o variabilă care să țină toate numerele. Cum pot să fac asta?
Am încercat următoarele:
const numsExplicit: ??? Howto specify the type
const numsInferred = x.slice(1) // incorrectly inferred as (string | number)[]
Răspuns #1
Tipul de căutare este doar după număr | șir.
Aș adăuga eu însumi vectorul:
function foo (a: string, ...nums: number[]): string {
return a;
}
declare const x: Parameters<typeof foo>[1][];
