2014-04-01 38 views
0

我有一个typecript项目,其中我有一个文件中定义的类Question和一个在另一个文件中实例化Question类的函数。我不是能把这个实例做,因为打字稿抛出的实例化一个错误,指出:无法使用amd导入Typescript中的类

error TS 2095: Could not find symbol 'Question' 

下面的代码:

//main.ts 

import questionModule = require("./Question"); 
var Question = questionModule.Question; 
function start() { 
    var question1 = new Question(); 
} 

//Question.ts 

import mainModule = require("./Main"); 

export class Question{ 

... 
} 

我怎么能在主实例化问题对象。当类Question在同一个文件中定义时它工作正常,但我需要将它们分开以进行模块化。这个类没有构造函数。这是用amd编译的前端代码。

--update

此代码在主文件和问题文件还抛出错误:

//main.ts 

class QuestionView{ 

    constructor(question:Question) { 
     ... 
    } 
} 

error TS2095: Could not find symbol 'Question' 


//Question.ts 

export class Question { 

    start() { 
     return{ 
      question: " ", 
      yesOrNo: false, 
      answers: new Answers([]) 
     } 
    } 

} 

error TS2095: Could not find symbol 'Answers'. 

答案定义在我已经删除,以避免循环引用主文件可用。我在两个文件之间创建了typescript参考标记。

========

回答

1

好像你有循环引用question.ts进口main.ts,没有看到一个原因:

import mainModule = require("./Main"); 

另外,还要确保您的文件名匹配导入名称(区分大小写)。正如你可以看到它正常工作:

enter image description here

更新移动answers到他们自己的文件answers.ts并将其导入到问题以及主要的。

+0

我添加了循环引用,因为有另一个从Question文件引用到主文件。我已经评论过,但它仍然无效。从问题文件中引用引发了一个错误:TS 2095:找不到符号 – EternallyCurious

+0

@EternallyCurious它工作正常^ – basarat

+0

请尝试我在上面的更新中显示的代码。它不起作用。我感谢您的帮助。 – EternallyCurious

相关问题