kaldo
kaldo

Reputation: 357

What is the TypeScript equivalent of Java's `?` unknown wildcard?

Say I want to declare an array of generics in Typescript. What would be the equivalent of the unknown wildcard '?' in Java?

This does compile, but seems a little awkward MyGeneric<any>[];

I would like a declaration equivalent to Java MyGeneric<?>[];, that is, a single type array, but the type is not known when it is declared.

Upvotes: 18

Views: 19408

Answers (2)

James Forbes
James Forbes

Reputation: 1497

I don't think Typescript has late binding generic types.

But if this particular code was in the context of a function you could use generics to achieve a similar thing.

function example<T>(val:T){
  let a : T[]

  return [val]
}

let a = example(4)
// number[] :: [4]

let b = example('hello')
// string[] :: ['hello']

Here is an interactive example: link

Try hovering over a or b to see it in action.

Upvotes: 4

basarat
basarat

Reputation: 275819

Say I want to declare an array of generics in Typescript. What would be the equivalent of the unknown wildcard '?' in Java?

To have a string array

var foo:string[]; 

This is same as the following as far as TypeScript is concerned:

var foo:Array<string>; 

If you want an array of anything then just use any:

var foo:any[] = ['asdf',123]; // Anything is allowed in this array.

Upvotes: 1

Related Questions