如何在TypeScript中使用模块加载

如何在TypeScript中使用模块加载,typescript,Typescript,在TypeScript中,我有如下代码: levenstein/LevensteinAlgorithm.ts export module levenstein { export class LevensteinAlgorithm { getDistance(left: string, right: string): number { // Some code for the alogorithm... } } } 为了对其

在TypeScript中,我有如下代码:

levenstein/LevensteinAlgorithm.ts

export module levenstein {
    export class LevensteinAlgorithm
    {
        getDistance(left: string, right: string): number {
        // Some code for the alogorithm...
        }
    }
}
为了对其进行单元测试,我在另一个路径中编写了一个测试:

测试/levensteinAlgorithmTests.ts

/// <reference path="../scripts/typings/qunit/qunit.d.ts" />
/// <reference path="../levenstein/levensteinalgorithm.ts" />

QUnit.module("levensteinalgorithm.ts tests");

import levenstein = require("levenstein/LevensteinAlgorithm");

test("Simple update cost is equal to 1", ()=> {
// Arrange
var leven = new levenstein.LevensteinAlgorithm();

//... 
我正在使用QUnit和Chutzpah来运行测试


我的模块加载有什么问题?

因为您将
LevensteinAlgorithm
包装在内部模块
levenstein
中,在外部模块中,将该对象导入为
levenstein
后引用该对象的方法是
levenstein.levenstein.LevensteinAlgorithm

这里最好的修复方法是从
LevensteinAlgorithm.ts
中删除
export模块Levenstein{
,然后直接从外部模块导出类

另请参见此处的“无需命名”标题:

Property LevensteinAlgorithm doesn't exist on type: ....