2016-09-14 3 views
0

У меня есть модуль я написал (который устанавливается с помощью НОГО из частного репо), что следующая структура:экспорта Машинописи/импорт функция

email.ts, utils.ts, index.ts, (некоторые другие файлов)

на моем email.ts у меня есть следующие функции:

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 у меня есть следующие объявления:

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

О применении, где я импортировать этот модуль импортировать это как

import * as Utils from "my-utils"; 

Наконец, всякий раз, когда я хочу использовать функцию SendEmail, я называю его с помощью этого заявления:

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 –

Смежные вопросы