larskarbo
larskarbo

Reputation: 460

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

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.

Upvotes: 2

Views: 183

Answers (1)

Alex Wayne
Alex Wayne

Reputation: 187004

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

Upvotes: 3

Related Questions