打字稿:无法从模块导入类

时间:2019-06-25 14:02:40

标签: typescript jasmine karma-jasmine

我正在尝试测试用ViewModel编写的Typescript,并且我用jasmine为此编写了一些单元测试。问题是我无法从其模块导入该类。我尝试了多种导入该类的方法,但均未成功。

export module App.Employee.Leader {
    export class LeaderViewModel {

        public elements: number;

        constructor(leaderElements : number)
        {
            var self = this;
            self.elements = leaderElements;
        }

        calculateHeight(numElements: number)
        {
            var self = this;
            var leaderElements = self.elements;

            if (numElements > leaderElements)
                return numElements + "px";
            else
                return self.elements + "px";
        }
    }
}

-----------------------------------------------------------

import Module = require("Areas/Employee/Scripts/App/Leader/LeaderViewModel");
import LeaderViewModel = Module.App.Employee.Leader.LeaderViewModel;

describe("calculateHeight", () => {
    it("calculate height accordingly", () =>
    {
        var leaderViewModel = new LeaderViewModel(10);

        var result = leaderViewModel.calculateHeight(20);

        expect(result).toEqual("20px");
    });
});

这是我得到的错误:

  

定位ECMAScript模块时,不能使用导入分配。   考虑使用'import * as from“ mod”'的ns,'import {a} from“ mod”',   “从“ mod”导入d”或其他模块格式。

我尝试按照建议的方式修复它,但无济于事。

如何从规范文件中的模块中导入类?

我必须在tsconfig.json中进行一些设置吗?

因为我是Typescript的新手,请提供详细的解释。

非常感谢您!

1 个答案:

答案 0 :(得分:0)

尝试“模块”,

代替“模块”