node.js - instalar - typescript example
TypeScript: ¿cómo definir tipings personalizados para el paquete npm instalado? (2)
Cree un nuevo archivo, lo llamó rx-node.d.ts
y asegúrese de que esté referenciado en su tsconfig.json
directamente o desde otro archivo, por ejemplo typings/index.d.ts
. Entonces puedes comenzar con algo como esto:
///<reference path="rx.d.ts" />
declare namespace RxNode {
export interface Emitter<T>{
}
export function toEventEmitter<T>(observable: Rx.Observable<T>, eventName: string): Emitter<T>;
}
Esta pregunta / respuesta podría ser útil: ¿Cómo escribir el archivo d.ts desde el archivo .js existente?
Si crea un archivo de definición de typings agradable y de alta calidad, contribuya con https://github.com/DefinitelyTyped/DefinitelyTyped
Me gusta usar rx-node dentro de TypeScript
import RxNode from ''rx-node'';
Instalé rx-node usando npm
$ npm install rx-node --save
Busqué definiciones de tipo, pero sin ningún resultado
$ typings search rx-node
No results found for search
¿Cómo puedo definir definiciones de tipos personalizados para el módulo npm rx-node instalado? ¿Dónde debería almacenar el archivo de definición de tipo? Cómo configurar TypeScript ( tsconfig.json y typings.json )?
Editar: Gracias a Aleksey L. y David Bohunek logré definir un rx-node.d.ts
que se parece a esto
declare module "rx-node" {
import {Observable} from ''@reactivex/rxjs'';
import {ReadLine} from "readline";
function fromReadLineStream(stream: ReadLine): Observable<string>
}
Instalé @reactivex/rxjs
npm install --save @reactivex/rxjs
Como recibí un error
node_modules/@reactivex/rxjs/dist/cjs/Observable.d.ts (10,66): Cannot find name ''Promise''. (2304)
Cambié el objetivo en tsconfig.json a es6
.
Puede agregar definiciones personalizadas a typings.json . Por ejemplo, tiene la siguiente estructura de carpetas:
/typings
/custom
rx-node.d.ts
/global
...
donde rx-node.d.ts es tu archivo de typings personalizado. Por ejemplo:
declare module RxNode {
export interface ...
}
Luego instálelo con un comando
typings install file:typings/custom/rx-node.d.ts --save --global
O manualmente: en typings.json agrega referencia a este archivo de typings:
{
"name": "TestName",
"version": false,
"globalDependencies": {
"rx-node": "file:typings/custom/rx-node.d.ts"
}
}
Y ejecutar typings install