打字稿相当于?未知的通配符

时间:2015-10-20 14:20:15

标签: generics typescript

假设我想在Typescript中声明一个泛型数组。什么相当于未知的通配符'?'在Java?

这确实可以编译,但似乎有点尴尬MyGeneric<any>[];

我想要一个等同于Java MyGeneric<?>[];的声明,即单个类型数组,但声明它时该类型是未知的。

干杯。

2 个答案:

答案 0 :(得分:2)

我不认为Typescript具有后期绑定泛型类型。

但是如果这个特定代码在函数的上下文中,你可以使用泛型来实现类似的东西。

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

  return [val]
}

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

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

以下是一个互动示例:link

请尝试将鼠标悬停在ab上以查看其实际效果。

答案 1 :(得分:0)

  

假设我想在Typescript中声明一个泛型数组。什么相当于未知的通配符'?'在Java?

拥有字符串数组

var foo:string[]; 

就TypeScript而言,这与以下内容相同:

var foo:Array<string>; 

如果您想要一个任何的数组,那么只需使用any

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