TypeScript用import替换<reference path =“”>

时间:2016-03-09 14:35:12

标签: import typescript ecmascript-6

我正在尝试编写一些TypeScript应用程序,并得出结论我不喜欢<reference path />语句。我发现更适合使用import 'something'

但是当我尝试更换我的参考路径时,我不断收到模块未知的错误。

这是我的文件夹结构:

/app
    /ViewModels
        ApplicationViewModel.ts
    app.ts

ApplicationViewModel.ts

module ApplicationVM {
    export class ApplicationViewModel {
        constructor(public test:string) {
        }
    }
}

app.ts

/// <reference path="ViewModels/ApplicationViewModel.ts" />

var a = new ApplicationVM.ApplicationViewModel('test');

这个工作得很好。我如何获得以下代码才能正常工作?

import * as App from 'noidea';
var a = new App.ApplicationViewModel('test');

对于'noidea'我试过:'ViewModels / ApplicationViewModel','ApplicationVM'asl。我甚至将它与<reference path />结合起来,但也没有帮助。

2 个答案:

答案 0 :(得分:2)

从ApplicationViewModel.ts中删除模块声明(如果使用外部模块,每个文件已经是一个模块):

export class ApplicationViewModel {
    constructor(public test:string) {
    }
}

然后在你的app.ts

import * as App from './ViewModels/ApplicationViewModel';
var a = new App.ApplicationViewModel('test');

答案 1 :(得分:1)

您需要使用所谓的external modules

ApplicationViewModel.ts

module ApplicationVM {
    export class ApplicationViewModel {
        constructor(public test:string) {
        }
    }
}

export = ApplicationVM;

app.ts

import { ApplicationViewModel } from "./ViewModels/ApplicationViewModel"
var a = new ApplicationViewModel('test');