2014-04-01 2 views
0

저는 하나의 파일에 정의 된 클래스 질문과 다른 클래스에서 Question 클래스를 인스턴스화하는 함수가있는 typescript 프로젝트가 있습니다.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 참조 태그를 만들었습니다. 당신이 question.tsmain.ts을 가져 오는 순환 참조를이 같은

========

답변

1

이것에 대한 이유가 표시되지 않습니다 보인다 : 또한

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

확인을하여 파일 이름은 가져 오기 이름과 일치합니다 (대소 문자 구분). 자신의 파일 answers.ts

enter image description here

업데이트 이동 answers 및 주요뿐만 아니라 질문으로 가져 : 당신은 잘 작동 볼 수 있듯이.

+0

질문 파일에서 주 파일로 다른 참조가 있었기 때문에 순환 참조를 추가했습니다. 나는 그것을 주석 처리했으나 여전히 효과가 없다. 질문 파일에서 참조를 만들면 오류가 발생합니다. TS 2095 : 기호를 찾을 수 없습니다. – EternallyCurious

+0

@EallyallyCurious 제대로 작동합니다.^ – basarat

+0

위의 업데이트에서 설명한 코드를 사용해보십시오. 작동하지 않습니다. 도와 주셔서 감사합니다. – EternallyCurious

관련 문제