Saturday, April 1, 2017

Declaration file for class-module (TypeScript)

Leave a Comment

I use a node module that's not found by typings and doesn't exist in definelytyped.

the basic use of the module is:

import * as SomeClass from 'some-module';  var someObject = new SomeClass("some string"); someObject.someMethod(); 

As you can see, this module exports a class as its default. I haven't figured out how to write the declaration file for it.

This is the best I managed to do:

declare module 'some-module' {     export default class SomeClass {         constructor (someArg: string);         someMethod(): void;     } } 

BTW it does work JavaScriptly. It's only the TypeScript bothers me.

Any ideas how to solve that?

2 Answers

Answers 1

For the declaration, you need to do this:

declare module 'some-module' {     class SomeClass {         constructor (someArg: string);         someMethod(): void;     }     export = SomeClass; } 

But I'll add more to this answer if you are tranpiling to ES5 (the right way).

Answers 2

If you just want to avoid TypeScript error and do not worry about ItelliSense just declare your class library like that in the begining of you file for example:

declare var SomeClass: any; 
If You Enjoyed This, Take 5 Seconds To Share It

0 comments:

Post a Comment