J'aime utiliser rx-node dans TypeScript
import RxNode from 'rx-node';
J'ai installé rx-node en utilisant npm
$ npm install rx-node --save
J'ai cherché des définitions de types, mais sans résultat
$ typings search rx-node
No results found for search
Comment puis-je définir des définitions de type personnalisées pour le module npm installé rx-node ? Où dois-je stocker le fichier de définition de type? Comment configurer TypeScript ( tsconfig.json et typings.json)?
Edit: Merci à Aleksey L. et David Bohunek J'ai réussi à définir un rx-node.d.ts
qui ressemble à ceci
declare module "rx-node" {
import {Observable} from '@reactivex/rxjs';
import {ReadLine} from "readline";
function fromReadLineStream(stream: ReadLine): Observable<string>
}
J'ai installé @ reactivex/rxjs
npm install --save @reactivex/rxjs
Depuis que j'ai une erreur
node_modules\@reactivex\rxjs\dist\cjs\Observable.d.ts (10,66): Cannot find name 'Promise'. (2304)
J'ai changé la cible dans tsconfig.json en es6
.
Attention, c'est une vieille question (2016) concernant la gestion des définitions en utilisant typages qui est déconseillée au profit de leur installation directement via npm
Vous pouvez ajouter des définitions personnalisées à typings.json . Par exemple, avoir la structure de dossiers suivante:
/typings
/custom
rx-node.d.ts
/global
...
où rx-node.d.ts est votre fichier de saisie personnalisé. Par exemple:
declare module RxNode {
export interface ...
}
Puis installez avec une commande
typings install file:typings/custom/rx-node.d.ts --save --global
Ou manuellement: dans typings.json ajoutez une référence à ce fichier de typage:
{
"name": "TestName",
"version": false,
"globalDependencies": {
"rx-node": "file:typings/custom/rx-node.d.ts"
}
}
Et courir typings install
Créez un nouveau fichier, appelé rx-node.d.ts
et assurez-vous qu'il est référencé dans votre tsconfig.json
soit directement, soit à partir d'un autre fichier, par exemple typings/index.d.ts
. Ensuite, vous pouvez commencer avec quelque chose comme ceci:
///<reference path="rx.d.ts" />
declare namespace RxNode {
export interface Emitter<T>{
}
export function toEventEmitter<T>(observable: Rx.Observable<T>, eventName: string): Emitter<T>;
}
Cette question/réponse peut être utile: Comment écrire un fichier d.ts à partir d'un fichier .js existant?
Si vous créez un fichier de définition de typages de Nice et de haute qualité, contribuez à https://github.com/DefinitelyTyped/DefinitelyTyped