跨文件的打字稿模块

时间:2015-08-24 19:55:01

标签: module static typescript

我正在尝试使用共享模块将带有typescript的简单节点项目和破解代码分成两个单独的文件。但有一些问题!

1)FileReader.ts定义+导出共享模块中的静态函数

var fs = require("fs");

export module Qbot {

    export class Utils {
        static read(filename: string) {
            var buf = fs.readFileSync(filename, "utf8");
            return data;
        }

    }

    Qbot.Utils.read("test");  // compiles OK

}

2)FileReader-spec.ts一个单独的文件,可以尝试使用上面的内容。

/// <reference path="./FileReader.ts" />

// should be in same module but TS compiler gives an error
module Qbot {
    var u = Qbot.Utils;  // ERR does not exist
    var data = Qbot.Utils.read("somefile.json");  // ERR cant find name
}

// outside the module? nope.
var data = Qbot.Utils.read("somefile.json");  // Utils doesnt exist

// this works but why the extra file thingy needed?
import something = require("./FileReader");
var filepath = "./topics.json";
var data = something.Qbot.Utils.read(filepath);

在我可以访问之前,是否需要始终将额外的文件导入“包含”导入模块?关于如何实现这一目标的任何指示将不胜感激!

此示例也只是尝试在Qbot.Utils模块上调用静态函数(根据此示例https://stackoverflow.com/a/13212648/1146785

谢谢!

0 个答案:

没有答案