julien_c julien_c - 1 year ago 83
TypeScript Question

Write a declaration file for a default export module

I have a npm module called RiveScript that usually (in Javascript) gets instantiated that way:

var RiveScript = require('rivescript');
var rivescript = new RiveScript();

I'm trying to write a declaration file for the module, but am stuck at the first step. Here's what I've written so far:

declare module "rivescript" {

interface RivescriptOptions {
utf8?: boolean;

class RiveScript {
constructor(options?: RivescriptOptions);

export default RiveScript;

Then I guess in Typescript I would be using the module this way (default import):

import RiveScript from 'rivescript';
let rivescript = new RiveScript();

generates this, which is not valid as it references a

const rivescript_1 = require('rivescript');
let rivescript = new rivescript_1.default();

What am I doing wrong?

Answer Source

You're really close. Instead of using export default, you should use export =.


declare module 'rivescript' {
  class RiveScript {
  export = RiveScript


import RiveScript = require('rivescript');
let rivescript = new RiveScript();

For more info on how to write declaration files, you should have a look at the Typescript Handbook. Eg. they have a template for 'exporting modules as a class'.

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