TypeScript编译,但会产生运行时错误

时间:2016-05-13 15:26:44

标签: typescript

我是TypeScript的新手,我遇到了一个我无法理解的问题......

我正在使用一个名为TypeLite的库,它将采用我的C#POCO并将它们转换为TypeScript类。

这是一个T4模板,它生成一个名为TypeLite.Net4.d.ts的文件,据我所知,.d文件是自动加载的定义文件。

生成的代码如下所示:

declare module Models {
    export class LoginModel {
        password: string;
        rememberMe: boolean;
        userName: string;
    }
}

在我的组件中,我可以正常访问Models.LoginModel并且它不会给我任何编译器错误(使用Visual Studio)。

但是,当我尝试运行它时,我得到:

EXCEPTION: Error: Uncaught (in promise): EXCEPTION: Error in :0:0
ORIGINAL EXCEPTION: ReferenceError: Models is not defined
ORIGINAL STACKTRACE:
ReferenceError: Models is not defined
    at new LoginComponent 

这是我的LoginComponent:

import { Component } from 'angular2/core';

@Component({
    selector: 'login',
    templateUrl: './app/login/login.html'
})

export class LoginComponent {
    model: Models.LoginModel = new Models.LoginModel();
}

我在这里做错了什么?

1 个答案:

答案 0 :(得分:2)

您尚未将Model导入LoginComponent

   import { Model } from 'path to Model module';

由于定义文件,您可能会获得智能感知,但要在运行时使用它,您必须导入该类。

希望这会有所帮助!!