TypeScript - как написать файл объявления для стороннего пакета с одной глобальной функцией? - PullRequest
0 голосов
/ 27 апреля 2018

Я пытаюсь написать файл объявления для стороннего пакета ( latex ). Пакет экспортирует одну глобальную функцию latex(). Я пытался использовать следующий файл декларации (src/@types/latex/index.d.ts):

declare module 'latex' {
    import { Stream } from "stream";
    export function latex(latex: string | string[] | Buffer | Stream): Stream
}

Сейчас я пытаюсь импортировать латекс, как этот import * as latex from 'latex', но компилятор заставляет меня вызывать latex.latex() вместо latex().

Как я могу это исправить?

Спасибо.

Ответы [ 2 ]

0 голосов
/ 27 апреля 2018
export default function latex()

Это синтаксис модулей ES6. Но оригинальный код модуля latex использует синтаксис модуля commonjs. Поэтому файл декларации должен быть

export = function latex()

Импорт также должен выполняться с помощью commonjs в TypeScript

import latex = require('latex')
0 голосов
/ 27 апреля 2018

Если функция экспорта по умолчанию, вы можете добавить ключевое слово по умолчанию в ваш файл определения:

export default function latex(...

А затем вы можете импортировать и использовать его следующим образом:

import latex from 'latex';

latex(args);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...