TypeScript - 如何使用单个全局函数为第三方包编写声明文件?

时间:2018-04-27 13:32:20

标签: typescript

我正在尝试为第三方软件包(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 :(得分:1)

如果该功能是默认导出,您可以在定义文件中添加default关键字:

export default function latex(...

然后你可以导入它并像这样使用它:

import latex from 'latex';

latex(args);

答案 1 :(得分:1)

export default function latex()

这是ES6模块的语法。但是latex模块的原始代码是使用commonjs模块语法。因此,申报文件应为

export = function latex()

也应该使用TypeScript中的commonjs方式进行导入

import latex = require('latex')