我正在尝试为第三方软件包(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()
。
我该如何解决这个问题?
谢谢。
答案 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')