【问题标题】:Export function as "root" of module?将函数导出为模块的“根”?
【发布时间】:2016-01-22 22:18:39
【问题描述】:

在编写 TypeScript 定义时,如何声明该定义定义的是函数而不是类型?这样函数就被导出为模块本身...

定义

declare module "rmdir" {
    interface IRmDirCallback {
        (err: any, dirs: Array<string>, files: Array<string>): any;
    }

    function rmdir(dir: string, options: any, callback: IRmDirCallback): void;

    export = rmdir;
}

export = rmdir.rmdir;

使用示例

/// <reference path="rmdir.d.ts"/>

import rmdir = require("rmdir");

rmdir("test", { }, (err: any, dirs: Array<string>, files: Array<string>) => { });

所以当我导入rmdir 时,我不想调用rmdir.rmdir(...)

【问题讨论】:

    标签: javascript typescript


    【解决方案1】:

    使用export =。以下是完整代码:

    declare module "rmdir" {
        function rmdir(dir: string, options: any, callback: (err: any, dirs: Array<string>, files: Array<string>) => any): void;
        export = rmdir;
    }
    

    【讨论】:

    • 这很有希望,但我似乎无法加载模块。运行时,我收到错误消息“找不到模块 'rmdir'”。我的假设是这是因为我导出了一个函数。不是模块!用当前代码更新了 OP,如果有时间请看一下。
    • ` 运行时,我收到错误消息“找不到模块 'rmdir'”` 确保已安装它。这不是 TypeScript 特有的。只是 NodeJS 生态系统。提示:npm install rmdir --save
    猜你喜欢
    • 1970-01-01
    • 2021-05-18
    • 2018-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-28
    • 1970-01-01
    相关资源
    最近更新 更多