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

kal*_*ldo 13 generics typescript

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

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

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

干杯.

bas*_*rat 1

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

拥有一个字符串数组

var foo:string[]; 
Run Code Online (Sandbox Code Playgroud)

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

var foo:Array<string>; 
Run Code Online (Sandbox Code Playgroud)

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

var foo:any[] = ['asdf',123]; // Anything is allowed in this array.
Run Code Online (Sandbox Code Playgroud)

  • 我认为“?”通配符表示单一类型,但该类型尚不清楚。这与说数组可以包含任何内容不同。 (17认同)
  • 我认为这里的问题是什么相当于通配符,而不是特定于任何类型数组。有时我们需要使用后期泛型,例如“ function fun(param: Type&lt;? extends Base&gt;) {}”,那么在这种情况下解决方案是什么?另外,如果我们来自 java 端,那么 `? 超级基地`? (3认同)