2016-07-10 3 views
1

У меня есть библиотека, установленная в node_modules/, и я хочу быстрый хак, чтобы я мог использовать его в приложении для машинописного текста. В папке typings/modules я создал папку с именем модуля и index.d.ts. Внутри этот файл у меня естьКак создать типизацию для ts

declare module "lib-name" { 
    export default class Logger { 
    constructor(namespace: string) 
    } 
} 

Я могу импортировать модуль, но когда я пытаюсь let l = new Lib('namespace'); я получаю ошибку cannot use 'with' an expression whose type lacks a call or construct signature

ответ

1

Я не думаю, что вы должны иметь class в вашей типизации. Это контракт на интерфейс, который вы должны объявить.

Кроме того, документация говорит, что новое выражение нуждается в методе new в интерфейсе: https://www.typescriptlang.org/docs/handbook/writing-declaration-files.html

попробовать что-то вроде этого, может быть:

declare module "lib-name" { 
    interface Logger { 
    new (namespace: string): Logger 
    } 

    export var Logger: Logger; 
} 
+0

Бог благословит вас !! –