TypeScript skriver d.ts-fil for modul som kan instansieres


Jeg har problemer med å lage deklarasjonsfil for en eksisterende modul.

Når man bruker javascript, importeres modulen ved hjelp av syntaksen:

var Library = require('thirdpartylibs');
var libInstance = new Library();

jeg har opprettet en d.ts-fil kalt thirdpartylibs.d.ts og lagt til følgende:

declare module 'thirdpartylibs'{
   export class Library{}
}

i min index.ts-fil :

import * as Library from 'thirdpartylibs'
let libInstance = new Library() // <--- error here

ser ut som om jeg bør gjøre let libInstance=new Library.Library() for at det skal fungere, men det vil feile på den genererte JS.

noen?

Svar #1

Prøv dette

declare module 'thirdpartylibs'{
   class Library {
      ...
   }
   export = Library
}

Å importere

import Library = require('thirdpartylibs')
const libInstance = new Library()

Merk: dette gjør Library til eksporten. Syntaksen du brukte er en «navngitt eksport»

Relaterte artikler