generics - Care este echivalentul TypeScript al wildcard-ului necunoscut `?` din Java?
Să spun că vreau să declar un tablou de generice în Typescript. Care ar fi echivalentul wildcard-ului necunoscut '?' în Java?
Acesta se compilează, dar pare puțin ciudat MyGeneric<any>[];
Aș dori o declarație echivalentă în Java cu MyGeneric<?>[];, adică un tablou de un singur tip, dar tipul nu este cunoscut când este declarat.
Răspuns #1
Nu cred că Typescript are tipuri generice cu legare târzie.
Dar dacă acest cod specific ar fi fost în contextul unei funcții, ai putea folosi generice pentru a realiza un lucru similar.
function example<T>(val:T){
let a : T[]
return [val]
}
let a = example(4)
// number[] :: [4]
let b = example('hello')
// string[] :: ['hello']
Iată un exemplu interactiv: link
Încearcă să treci cursorul peste a sau b pentru a vedea cum funcționează.
Răspunsul #2
Să spun că vreau să declar un tablou de generice în Typescript. Care ar fi echivalentul wildcard-ului necunoscut '?' în Java?
A avea un tablou de șiruri
var foo:string[];
Acesta este la fel ca următorul în ceea ce privește TypeScript:
var foo:Array<string>;
Dacă vrei un array de orice, atunci folosește pur și simplu any:
var foo:any[] = ['asdf',123]; // Anything is allowed in this array.
