在角度混合javascript和打字稿时出错

时间:2016-01-26 11:00:14

标签: javascript angularjs typescript ecmascript-6

我正在尝试在我的角度应用程序的一部分中使用typescript。 我有一个描述用户类的ts文件:

module App.Tools {
    export class User {
        name: string;
        constructor(name: string) {
            this.name = name;
        }
    }
}

在我的JS文件(es2015)中,我尝试导入类User:

import  {User} from 'User.ts';

export default class AuthFactory {
    /**
     * @param  {[type]}
     * @return {[type]}
     */
    constructor($firebaseAuth) {
        this.ref = new Firebase("...");

        // create an instance of the authentication service
        this.auth = $firebaseAuth(this.ref);

        var authData = this.auth.$getAuth();

        if (authData) {
            this.currentUser = new User(authData.google.displayName, authData.provider);
        } else {
            this.currentUser = null;
        }
    }
}

这不起作用,因为我收到错误:“用户未定义”。

我正在使用浏览器,tsify和babel。

1 个答案:

答案 0 :(得分:1)

我认为您需要在“User.ts”文件中添加“external”打字稿模块:

class User {
    name: string;
    constructor(name: string) {
        this.name = name;
    }
}

export = User;

更新1

使用内部模块:

module App.Tools {
    export class User {
        name: string;
        constructor(name: string) {
            this.name = name;
        }
    }
}

export = App.Tools;

要在导入中使用此功能:

import { User } from 'User.ts';