Mi piace usare rx-node entro dattiloscrittoTypeScript: come definire i tipi di battitura personalizzati per il pacchetto npm installato?
import RxNode from 'rx-node';
ho installato rx-node utilizzando npm
$ npm install rx-node --save
Ho cercato per definizioni di tipo, ma senza alcun risultato
$ typings search rx-node
No results found for search
Come posso definire personalizzato definizioni di tipo per il modulo npm installato rx-node? Dove devo archiviare il file di definizione del tipo? Come configurare TypeScript (tsconfig.json e typings.json)?
Edit: Grazie a Aleksey L. e David Bohunek ho raggiunto per definire un rx-node.d.ts
che assomiglia a questo
declare module "rx-node" {
import {Observable} from '@reactivex/rxjs';
import {ReadLine} from "readline";
function fromReadLineStream(stream: ReadLine): Observable<string>
}
ho installato @reactivex/rxjs
npm install --save @reactivex/rxjs
Da quando ho ottenuto un errore
node_modules\@reactivex\rxjs\dist\cjs\Observable.d.ts (10,66): Cannot find name 'Promise'. (2304)
Ho cambiato l'obiettivo in tsconfig.json a es6
.
L'esecuzione di 'typings install' copia' typings/custom/rx-node.d.ts' a 'typings/globals/rx-node/index.d. ts'. Se cambio la definizione del tipo, devo eseguire di nuovo 'typings install' per copiare le modifiche. Qual è il vantaggio di questo approccio rispetto al riferimento a 'rx-node.d.ts' manualmente in' index.d.ts'? – maiermic
Personalmente preferisco non modificare i file generati automaticamente (e aggiungere la regola ignora nel controllo del codice sorgente). Inoltre, una volta definite le tipizzazioni, queste non cambieranno fino a quando non verrà modificata la libreria originale. E una volta che la versione "ufficiale" è disponibile, può essere facilmente sostituita. –
Suppongo che questo approccio sia cambiato da TypeScript 2.x, dato che la cartella 'typings' è ridondante e tutte le tipizzazioni sono installate tramite npm in node_modules/@ types/...? Esiste un approccio raccomandato per la tipizzazione personalizzata per le definizioni mancanti? – Squiggle