2012-10-14 14 views
16

C'è un modo per parametrizzare un tipo con un altro tipo in TypeScript oltre all'uso di array digitati?Generics in TypeScript

È davvero necessario con KnockoutJs.

risposta

18

I generici non sono ancora supportati, anche se vengono considerati. Ecco cosa ha da dire la specifica:

NOTA: TypeScript al momento non supporta Generics, ma ci aspettiamo di includerli nella lingua finale. Dal momento che il sistema di tipo statico del dattiloscritto non ha alcuna manifestazione di run-time, Generics sarà basata su “la cancellazione di tipo” e destinato esclusivamente come un condotto per esprimere le relazioni di tipo parametriche nelle interfacce, classi e firme di funzione.

Dal spec lingua dattiloscritto alla fine della sezione 3.

+0

Eventuali aggiornamenti fino ad ora? :) –

+1

La versione di destinazione per generici è 0.8.3 in base alla roadmap http://typescript.codeplex.com/wikipage?title=Roadmap&referringTitle=Home –

+3

ora è 0.9.0 in base al problema tracker http: // typescript. codeplex.com/workitem/list/advanced?keyword=&status=Open%20(not%20closed)&type=All&priority=All&release=TypeScript%200.9.x&assignedTo=All&component=All&sortField=Votes&sortDirection=Descending&page=0 – zcrar70

0

sto usando una soluzione piuttosto sporca. È possibile assegnare una classe a una variabile di tipo any. Questo codice è valido:

class A{} 
var test:any=A; 
var a=new test(); 

in modo da poter parametrizzare i vostri metodi con l'aggiunta di un altro parametro di tipo qualsiasi

function(param:any){ 
    var test=new param(); 
    test.someFunction(); 
} 

Naturalmente questo è molto cattivo stile e, probabilmente, non è raccomandato. Ma per me coprirà il tempo finché i farmaci generici non saranno inclusi nella lingua.