首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TypeScript --如何为具有单个全局函数的第三方包编写声明文件?

TypeScript --如何为具有单个全局函数的第三方包编写声明文件?
EN

Stack Overflow用户
提问于 2018-04-27 13:32:19
回答 2查看 553关注 0票数 0

我试图为第三方包(乳胶)编写一个声明文件。该包导出一个全局函数latex()。我尝试使用以下声明文件(src/@types/latex/index.d.ts):

代码语言:javascript
复制
declare module 'latex' {
    import { Stream } from "stream";
    export function latex(latex: string | string[] | Buffer | Stream): Stream
}

现在,我试图导入像这样的import * as latex from 'latex',但是编译器强迫我调用latex.latex(),而不是只调用latex()

我怎么才能解决这个问题?

谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-04-27 14:33:48

代码语言:javascript
复制
export default function latex()

这是ES6模块语法。但是,latex模块的原始代码使用了commonjs模块语法。因此,声明文件应该是

代码语言:javascript
复制
export = function latex()

在TypeScript中也应该使用公共方式进行导入。

代码语言:javascript
复制
import latex = require('latex')
票数 1
EN

Stack Overflow用户

发布于 2018-04-27 13:44:00

如果函数是默认导出,则可以在定义文件中添加默认关键字:

代码语言:javascript
复制
export default function latex(...

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

代码语言:javascript
复制
import latex from 'latex';

latex(args);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50063544

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档