TypeScript: как определить пользовательские типы для установленного пакета npm?
мне нравится использовать rx-node в пределах TypeScript
import RxNode from 'rx-node';
Я установил rx-node использование npm
$ npm install rx-node --save
Я искал определения типа, но без какого-либо результата
$ typings search rx-node
No results found for search
как определить пользовательские определения типов для установленного модуля npm rx-node? Где следует хранить файл определения типа? Как настроить TypeScript (tsconfig.в JSON и typings.в JSON)?
Edit: спасибо Л. Алексей и Дэвид Bohunek я достиг, чтобы определить rx-node.d.ts
вот такой
declare module "rx-node" {
import {Observable} from '@reactivex/rxjs';
import {ReadLine} from "readline";
function fromReadLineStream(stream: ReadLine): Observable<string>
}
Я установил @reactivex/rxjs
npm install --save @reactivex/rxjs
так как я получаю ошибку
node_modules@reactivexrxjsdistcjsObservable.d.ts (10,66): Cannot find name 'Promise'. (2304)
Я изменил цель в tsconfig.в JSON to es6
.
2 ответов
вы можете добавить свои определения для typings.в JSON. Например, имея следующую структуру папок:
/typings
/custom
rx-node.d.ts
/global
...
где rx-узел.d.ts-это ваш пользовательский файл typings. Например:
declare module RxNode {
export interface ...
}
установить с помощью команды
typings install file:typings/custom/rx-node.d.ts --save --global
или вручную: в typings.в JSON добавить ссылку на этот файл typings:
{
"name": "TestName",
"version": false,
"globalDependencies": {
"rx-node": "file:typings/custom/rx-node.d.ts"
}
}
и работать typings install
создайте новый файл, называемый rx-node.d.ts
и убедитесь, что на него ссылаются в вашем tsconfig.json
либо непосредственно, либо из другого файла, например typings/index.d.ts
.
Тогда вы можете начать с чего-то вроде этого:
///<reference path="rx.d.ts" />
declare namespace RxNode {
export interface Emitter<T>{
}
export function toEventEmitter<T>(observable: Rx.Observable<T>, eventName: string): Emitter<T>;
}
этот вопрос/ответ может быть нам: Как написать d.TS файл из существующего .файл js?
Если вам создать красивый, высокое качество typings файл определения, способствовать https://github.com/DefinitelyTyped/DefinitelyTyped