I want use inline-style-prefixer like:
var InlineStylePrefixer = require(\'inline-style-prefixer\');
...
var prefixer
I'm using TypeScript 2.0.10
Here's my definition that works for FuzzySearch, which I think is similar to what you want.
The default export is the class, which applies to this kind of import:
import * as FuzzySearch from 'fuzzy-search';
The trick is to declare the class and also a variable with the class as the value and make that variable the default export.
fuzzy-search.d.ts
interface FuzzyOptions {
caseSensitive?: boolean;
sort?: boolean;
}
declare class FuzzySearch<T> {
constructor(haystack: T[], keys: string[], options?: FuzzyOptions);
search(needle: string): T[];
}
declare var fuzzySearchClass = FuzzySearch;
declare module 'fuzzy-search' {
export = fuzzySearchClass;
}
If you import the class from the module, such as:
import { Thing } from 'thing-module';
thing-module.d.ts
declare module 'thing-module' {
declare class Thing {
constructor(someArg: number);
doSomething(): string;
}
}
You'd do two/three declares:
declare class InlineStylePrefixer {
constructor(useagent: string) {}
}
declare module InlineStylePrefixer {
export function prefixAll(style: Object): Object;
}
declare module "inline-style-prefixer" {
export = InlineStylePrefixer;
}
When you have a class and a module with the same name, the module is merged with the class.