MegaMuetzenMike MegaMuetzenMike - 1 year ago 1816
Node.js Question

TypeScript: How to define custom typings for installed npm package?

I like to use rx-node within TypeScript

import RxNode from 'rx-node';

I installed rx-node using npm

$ npm install rx-node --save

I searched for type definitions, but without any result

$ typings search rx-node
No results found for search

How can I define custom type definitions for the installed npm module rx-node? Where should I store the type definition file? How to configure TypeScript (tsconfig.json and typings.json)?

Edit: Thanks to Aleksey L. and David Bohunek I achieved to define a
that looks like this

declare module "rx-node" {
import {Observable} from '@reactivex/rxjs';
import {ReadLine} from "readline";

function fromReadLineStream(stream: ReadLine): Observable<string>

I installed @reactivex/rxjs

npm install --save @reactivex/rxjs

Since I got an error

node_modules\@reactivex\rxjs\dist\cjs\Observable.d.ts (10,66): Cannot find name 'Promise'. (2304)

I changed the target in tsconfig.json to

Answer Source

You can add custom definitions to typings.json. For example having following folder structure:


where rx-node.d.ts is your custom typings file. For example:

declare module RxNode {
    export interface ...

Then in typings.json add reference to this typings file:

    "name": "TestName",
    "version": false,
    "globalDependencies": {
        "rx-node": "file:typings/custom/rx-node.d.ts"

And run typings install

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download