Typescript class.default不是构造函数

Nan*_*dke 8 javascript typescript

创建一个Angular2应用程序时,我在第一个类的构造函数中调用另一个类的构造函数时遇到以下问题.

头等舱代码

import SecondClass from './second-class'

export class FirstClass {
    someVar:string;
    secondClass:SecondClass;

    constructor(firstClass?: FirstClass) {
        someVar='test';
        secondClass= new SecondClass;
    }
}
Run Code Online (Sandbox Code Playgroud)

二等代码:

export class SecondClass {
    someOtherVar:string;

    constructor(secondClass?:SecondClass) {
        someOtherVar='test';
    }
}
Run Code Online (Sandbox Code Playgroud)

会给我错误:ORIGINAL EXCEPTION:TypeError:second_class_1.default不是构造函数

内容为./second-class

System.register([], function(exports_1, context_1) {
    "use strict";
    var __moduleName = context_1 && context_1.id;
    var SecondClass;
    return {
        setters:[],
        execute: function() {
            SecondClass = (function () {
                function SecondClass(secondClass) {
                    this.someOtherVar='test';
                }
                return SecondClass;
            }());
            exports_1("SecondClass", SecondClass);
        }
    }
});
//# sourceMappingURL=second-class.js.map
Run Code Online (Sandbox Code Playgroud)

这是Typescript编译器的编译输出

dfs*_*fsq 15

错误消息表示您使用了命名export(export class SecondClass {})./second-class(不是默认值).所以这意味着你的导入看起来应该是这样的

import {SecondClass} from './second-class'
Run Code Online (Sandbox Code Playgroud)

  • 谢谢。修改了代码但仍然得到错误,如 ORIGINAL EXCEPTION: TypeError: second_class_1.SecondClass is not a constructor (2认同)

tib*_*bus 5

代码中有一些错误:

  • {}进口失踪

  • 缺少()调用构造函数

  • 缺少this访问类成员

头等舱代码

import {SecondClass} from './second-class'

export class FirstClass {
    someVar:string;
    secondClass:SecondClass;

    constructor(firstClass?: FirstClass) {
        this.someVar='test';
        this.secondClass= new SecondClass();
    }
}
Run Code Online (Sandbox Code Playgroud)

二级代码:

export class SecondClass {
    someOtherVar:string;

    constructor(secondClass?:SecondClass) {
        this.someOtherVar='test';
    }
}
Run Code Online (Sandbox Code Playgroud)