Sendgrid-nodejs: MailDataRequiredにはMailContentが必要ですか?

作成日 2020年03月07日  ·  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

最も参考になるコメント

ところで:6.5.0にはこの奇妙な{ 0: MailContent }要件はないようですが、それでもコンテンツは必要です。

全てのコメント19件

ところで:6.5.0にはこの奇妙な{ 0: MailContent }要件はないようですが、それでもコンテンツは必要です。

これも見てます。 私のパッケージを更新しましたが、これについてはよくわかりません

私が間違っていない限り、これをhttps://github.com/sendgrid/sendgrid-nodejs/issues/1056の複製と

6.5.4リリースで導入された1041には、 texthtml 、またはcontentいずれかが必要templateId自体も許可する必要があることが指摘されました。 これはパーツ#1053として修正されましたが、まだリリースされていません。

@ childish-sambinoこれはまだ6.5.4 、タイプは次のように定義されています。

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

それはcontentを必須のプロパティにしているのですが、 MailDataそれを条件付きプロパティとして定義する理由はありますか? 私はそれを渡すことによってそれを修正しました:

{...mailData, content: undefined}

6.5.4リリースで導入された1041には、 texthtml 、またはcontentいずれかが必要

@ rodrigomf24 mailDataはそれらの1つがありませんか?

@ childish-sambinoはtemplateIddynamicTemplateDataだけではありません

@ 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の最新のドキュメントはどこにありますか? ここではあまり見つかりません。 @ childish-sambino

ありがとう。

はい、これは6.5.5でリリースされ

@ childish-sambino @sendgrid/mailパッケージからMailDataRequiredをエクスポートすることについてどう思いますか?

@isaachinman問題ありません。 PRを提出したい場合は、レビューできます。

@ childish-sambino私は周りを見回しましたが、ここで行われてexport =のモジュールアプローチに慣れていません。 重大な変更を導入せずにこれを拡張する方法がわかりません。

あなたが私を正しい方向に向けることができれば、喜んでお手伝いします。

この行は更新できると思います//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これ(ハック)で修正する必要があると思います//github.com/sendgrid/sendgrid-nodejs/pull/1102

このページは役に立ちましたか?
0 / 5 - 0 評価