2016-09-14 3 views
0

は私が(プライベートレポからNPM経由でインストールされている)私が書いたモジュールを持って次の構造その:活字体のエクスポート/インポート機能

email.ts、utils.ts、index.ts、(いくつかの他のファイル私は、以下の機能を持っている私のemail.tsオン)

export * from "./email"; 
export * from "./errors"; 
export * from "./logger"; 
export * from "./objectUtils"; 
export * from "./queryFilter"; 
export * from "./templateEngine"; 
export * from "./utils"; 

export default function sendEmail(toEmail: string, subject: string, content: string): any { 

    let helper = SendGrid.mail; 

    let from_email: any = new helper.Email(process.env.FROM_EMAIL); 
    let to_email: any = new helper.Email(toEmail); 
    let helperContent: any = new helper.Content("text/plain", content); 
    let mail: any = new helper.Mail(from_email, subject, to_email, helperContent) 

    var request = SendGrid.emptyRequest({ 
     method: "POST", 
     path: "/v3/mail/send", 
     body: mail.toJSON() 
    }); 

    //This performs the request with a promise 
    SendGrid.API(request).then((response: any) => { 
     //Deal with output as needed 
     console.log("email was sent!!"); 
    }).catch((err: any) => { 
     //log.error(err); 
    }); 
} 

その後、私のindex.tsに、私は次の宣言を持っています私はこのモジュールをインポートするアプリケーションで

私はのsendEmail機能を使用したい時はいつでも

import * as Utils from "my-utils"; 

は最後に、私はこの文を使用してそれを呼び出すように私はこれをインポートします。

Utils.sendEmail(email, subject, content); 

しかし、これは常に"Cannot read property 'sendEmail' of undefined"というエラーがスローされます。

どうしてですか?このような宣言をこのような方法でエクスポートするときに、私はこの型の宣言を使用できませんか? これはどのような解決策ですか?

よろしく

+0

この '私-utils'は何ですか? –

+0

@NitzanTomer私のNPMモジュールの名前です –

+0

ノードのようなものがあなたのモジュールを見つけることができません。コンパイルされた出力を見てください。意味がありますか?あなたはそれをあなたの質問に含めることができますか? –

答えて

4

だけ

export default function sendEmail 

を変更してみてください

export function sendEmail 
+0

それは私がしたこととまったく同じでした。あなたの答えを見る前にすべてのデフォルト宣言を削除し、すべてが期待どおりに動作するように宣言しました。 Tks –