Sendgrid-nodejs: MailDataRequired требует MailContent?

Созданный на 7 мар. 2020  ·  19Комментарии  ·  Источник: sendgrid/sendgrid-nodejs

Резюме проблемы

У меня проблема с Typescript, потому что он не позволяет мне создавать электронную почту без поля содержимого. Правильно ли MailDataRequired ?

Я никогда не отправлял контент в своих электронных письмах. Только замены. Контент / шаблоны живут на ваших серверах.

Фрагмент кода

export type MailDataRequired = MailData & (
    { text: string } | { html: string } | { templateId: string } | { content: MailContent[] & { 0: MailContent } });

Исключение / журнал

# paste exception/log here

Технические подробности:

  • версия sendgrid-nodejs: @ sendgrid / client @ ^ 6.5.3
duplicate

Самый полезный комментарий

BTW: 6.5.0, похоже, не имеет этого странного требования { 0: MailContent } , но все же требуется контент.

Все 19 Комментарий

BTW: 6.5.0, похоже, не имеет этого странного требования { 0: MailContent } , но все же требуется контент.

смотрю и это тоже. обновил мой пакет и теперь не уверен в этом

Считая это дубликатом https://github.com/sendgrid/sendgrid-nodejs/issues/1056 , если я не ошибаюсь.

1041, представленный в выпуске 6.5.4, требовал одного из text , html или content . Позже было указано, что само по себе templateId также должно быть разрешено. Это было исправлено как часть # 1053, но еще не выпущено.

@ childish-sambino, это все еще проблема для 6.5.4 тип определяется следующим образом:

type MailDataRequired = MailData & (
  { text: string } | { html: string } | { content: MailContent[] & { 0: MailContent } });

Это делает content обязательным свойством, есть ли причина для этого, когда MailData определяет его как условное свойство? Я исправил это, пропустив:

{...mailData, content: undefined}

1041, представленный в выпуске 6.5.4, требовал одного из text , html или content .

@ rodrigomf24 А в mailData нет ни одного из них?

@ childish-sambino не просто templateId и dynamicTemplateData

@ rodrigomf24

Позже указывалось, что сам по себе templateId также должен быть разрешен. Это было исправлено как часть # 1053, но еще не выпущено.

Это исправление выпущено?

Я только что получил версию 7.0.0 и все еще вижу эту ошибку

TSError: ⨯ Unable to compile TypeScript: src/email-templates/verification-email-template.ts(15,25): error TS2769: No overload matches this call. Overload 1 of 2, '(data: MailDataRequired, isMultiple?: boolean | undefined, cb?: ((err: Error | ResponseError, result: [ClientResponse, {}]) => void) | undefined): Promise<...>', gave the following error.

Если это изменилось в 7.0.0, где, пожалуйста, последняя документация по API отправки? Здесь много не найду. @ детское самбино

Спасибо.

Да, это было выпущено в 6.5.5

@ childish-sambino Что вы думаете об экспорте MailDataRequired из пакета @sendgrid/mail ?

@isaachinman Я не

@ childish-sambino Я осмотрелся и не знаком с модульным подходом export = который здесь используется . Я не понимаю, как это можно расширить без внесения критических изменений.

Рад помочь, если вы укажете мне правильное направление.

Думаю, эту строку можно просто обновить: https://github.com/sendgrid/sendgrid-nodejs/blob/master/packages/mail/src/mail.d.ts#L37

Может быть, вот так:

declare const mail: MailService & { MailService: typeof MailService, MailDataRequired: typeof MailDataRequired };

Нет, это не сработает, поскольку MailDataRequired уже является типом. Использование declare const немного усложняет задачу.

Тогда просто , MailDataRequired: MailDataRequired }; ?

Нет, я говорю, что буквально добавляет атрибут MailDataRequired к экспорту по умолчанию. Если вы попробуете последнее предложение, вы получите ошибку refers to a value, but is being used as a type .

Я не видел других типов управления пакетами с таким модульным подходом, поэтому я не могу предложить вам никаких предложений. Вам нужен способ поддержки именованного экспорта.

Обычно я ожидал увидеть что-то вроде этого:

export default mail
export { MailDataRequired }

@isaachinman Думаю, это (взлом) должно исправить: https://github.com/sendgrid/sendgrid-nodejs/pull/1102

Была ли эта страница полезной?
0 / 5 - 0 рейтинги

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

TobiahRex picture TobiahRex  ·  3Комментарии

umarhussain15 picture umarhussain15  ·  3Комментарии

danielflippance picture danielflippance  ·  4Комментарии

Loriot-n picture Loriot-n  ·  4Комментарии

thidasapankaja picture thidasapankaja  ·  4Комментарии