Home > Enterprise >  Is it possible to supply named rest arguments in the type space in TypeScript?
Is it possible to supply named rest arguments in the type space in TypeScript?

Time:04-14

In TypeScript, we can use a Tuple of types to create typesafe rest arguments:

type Params = [string,number,string]

const fn = (...args: Params) => null

// Type is (args_0: string, args_1: number, args_2: string) => null

Is there any way to supply the names of these parameters? Completely in the Type space?

So, instead of having the parameters named args_0, args_1, args_2, I want to explicitly name them (example) myString, myNumber, mySecondString.

CodePudding user response:

Tuple members can be named, which just works when spread to function arguments:

type Params = [myString: string, myNumber: number, mySecondString: string]

const fn = (...args: Params) => null
// const fn: (myString: string, myNumber: number, mySecondString: string) => null

Playground

  • Related