コンテンツフィールドなしでメールを作成できないため、Typescriptで問題が発生しています。 MailDataRequired
正しいですか?
メールでコンテンツを送信したことはありません。 置換のみ。 コンテンツ/テンプレートはサーバー上にあります。
export type MailDataRequired = MailData & (
{ text: string } | { html: string } | { templateId: string } | { content: MailContent[] & { 0: MailContent } });
# paste exception/log here
ところで:6.5.0にはこの奇妙な{ 0: MailContent }
要件はないようですが、それでもコンテンツは必要です。
これも見てます。 私のパッケージを更新しましたが、これについてはよくわかりません
私が間違っていない限り、これをhttps://github.com/sendgrid/sendgrid-nodejs/issues/1056の複製と
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}
6.5.4リリースで導入された1041には、
text
、html
、またはcontent
いずれかが必要
@ rodrigomf24 mailData
はそれらの1つがありませんか?
@ 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の最新のドキュメントはどこにありますか? ここではあまり見つかりません。 @ 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
最も参考になるコメント
ところで:6.5.0にはこの奇妙な
{ 0: MailContent }
要件はないようですが、それでもコンテンツは必要です。