2012-10-07 15 views
13

È possibile utilizzare librerie JavaScript in TypeScript?Usa libreria JavaScript Raphael in TypeScript

Per esempio voglio usare Raphael a macchina e ha aggiunto i file JS nel mio /scripts folder e li ha aggiunto a _references.js.

Ma quando voglio dichiarare nel mio file TS:

var r = Raphael(10,50,640,480); 

Intellisense dice sempre:

Raphael does not exist in the current scope.

e il file TS non viene compilato.

risposta

19

Questa linea è una dichiarazione ambientale:

declare var Raphael: any; 

Mentre lavora, si ottiene nessun vero battitura.

Il progetto DefinitelyTyped ha già definizioni per Raffaello.

Scarica il file raphael.d.ts.

e usarlo in questo modo:

/// <reference path="../Definitions/raphael.d.ts" /> 
0

Suppongo la risposta precedente, dichiaro Raphael come var con type any e funzionerà. Ma se ti piace seriamente approfittare dello script di tipo, allora crea un file di dichiarazione per Raphael js. Quindi, questo fornirà intelligenza ogni volta che usi Raphael js. Ecco link per il file di dichiarazione Jquery disponibile negli esempi forniti dal sito dattiloscritto. Basta dare un'occhiata che ti aiuterà. Per favore fatemi sapere se ulteriori dettagli richiesti.

+0

c'è uno strumento per generare automaticamente un file di dichiarazione? Il compilatore della riga di comando – daniel

+0

lo sta facendo, ma suppongo che sia per dattiloscritto al file di dichiarazione del dattiloscritto, non da javascript al file di dichiarazione. Puoi ancora provare a copiare la copia da js a ts e provare a generare la dichiarazione ma non ne sono sicuro. – kunjee

0

Come precedentemente, ha osservato, si può semplicemente dichiarare Raffaello come var di "qualunque" tipo, ma se si vuole IntelliSense e in fase di compilazione controllo, avrete bisogno di un file di dichiarazione. Sono andato avanti e preso una pugnalata iniziale a questo qui: https://bitbucket.org/keesey/raphaelts