声明中的循环引用:类型错误:对象#<object>没有方法&#39; call&#39; </object>

时间:2014-07-04 09:40:04

标签: node.js typescript commonjs

3个简单类在三个单独的Typescript(1.0.1)文件中设置,编译为CommonJS模块

SubASubB都继承自KlassKlass也会导入SubB

node中,正在运行

var SubA = require('./SubA');
var sa = new SubA('blah');
sa.toSubB();

在使用super()的{​​{1}}构造函数中的SubB调用失败

(编辑:在上面的js代码中用SubB替换SubA,不会失败)

您是否看到了解决此问题的方法,或TypeError: Object #<Object> has no method 'call'无法导入Klass

Klass.ts

SubB

SubA.ts

import SubB = require('./SubB')

class Klass {

    private name: string

    setName(name: string) {
        this.name = name
    }

    getName(): string {
        return this.name
    }

    createSubB(): SubB {
        return new SubB(name)
    }
}

export = Klass

SubB.ts

import Klass = require('./Klass')
import SubB = require('./SubB')

class SubA extends Klass {

    constructor(name:string) {

        super()
        this.setName(name)
    }

    toSubB(): SubB {
        return new SubB(this.getName())
    }
}

export = SubA

import Klass = require('./Klass') import SubA = require('./SubA') class SubB extends Klass { constructor(name:string) { super() this.setName(name) } toSubA(): SubA { return new SubA(this.getName()) } } export = SubB 命令行选项:tsc

1 个答案:

答案 0 :(得分:0)

更改importSubASubB语句的顺序已修复