2014-10-24 4 views
3

나는이 방식으로 작성 단지 하나의 함수를 내 보냅니다 "main.ts"에서 타이프 외부 모듈이 "통화 서명이 부족하다".내보내기 타이프 라이터 기능은

// ... 
import express = require('express'); 
import mipod = require('./main'); 
import O = require('./Options'); 
// ... 
var app = express(); 
var opts: O.IOptions = O.Options.default(); 
// ... 
mipod(app, opts); 

마지막 줄은 컴파일되지 않습니다, 오류 TS2088 말 : 는 그리고이 모듈을 가져올 다른 파일을,이 유형이 통화 서명을 결여 식을 호출 할 수 없습니다. mipod (app, opts);

왜이 오류가 발생하는지 이해가되지 않습니다. 이 오류에도 불구하고 javascript가 올바르게 생성되어 제대로 실행됩니다. 그래서, 그것은 컴파일러 버그입니까? 아니면 내 코드에 뭔가 이상한 점이 있습니까?

PS : 나는 또한 두 번째 파일의 맨 위에 참조를 추가하려고 :

/// <reference path="./main.ts" /> 

을하지만 아무것도 변경되지 않습니다.

답변

6

TypeScript는 형식 정보에 대한 module.exports 지정을 구문 분석하지 않습니다. 대신이 라인의 :

module.exports = listenRestRoutes; 

사용 나는 그것을 놓칠 수있는 방법을 네 말이 맞아이

export = listenRestRoute; 
+0

! 감사! – Joel

+2

오 남자도 올바른 es2015 구문'export default listenRestRoutes' 작품 - 너무 바보 !! – CodeAndCats