在打字稿中导出模块

Exporting modules in typescript

我是 typescript 的新手,我正在使用 Node.js 5.10.1 和 tsc 1.8.9。 我正在尝试创建一个简单的 ts 文件,其中包含一个我可以使用的函数。

由于我使用的是外部模块并且我的应用是基于 Node.js 的,所以我使用的是 typescript-require 3rd 库模块。

这是我的 my-util.ts 文件:

"use strict";

var fs = require('fs');

export module MyUtil {
    export function isFileReadable(filePath:string, callback:Function) {
        fs.access(filePath, fs.R_OK, (err) => {
            callback(err, null);
        });
    }
}

现在...在主 ts 文件中,该文件当前是.. 空的。我想要求 my-util.ts 文件并使用函数 isFileReadable

我更正了什么以将导出添加到模块 MyUtil?我如何要求它?

我建议使用静态方法将其导出为 class。模块现在更适合 .d.ts 文件。在 es2015 规范落地之前,它们通常用于模块。以下答案假定您正在正确编译所有 TypeScript 代码。

试试这个:

"use strict";
var fs = require('fs');

export class MyUtil {
    static isFileReadable(filePath:string, callback:Function) {
        fs.access(filePath, fs.R_OK, (err) => {
            callback(err, null);
        });
    }
}

然后要使用它(使用标准节点导入)你会这样做:

var util = require('./my-util').MyUtil;
util.isFileReadble(...)

使用 ES6 导入你会做:

import {MyUtil} from './my-util';
MyUtil.isFileReadble(...)