Saya mengalami masalah dengan TypeScript karena tidak memungkinkan saya membuat email tanpa bidang konten. Apakah MailDataRequired
benar?
Saya tidak pernah mengirim konten dengan email saya. Hanya pergantian pemain. Konten / template hidup di server Anda.
export type MailDataRequired = MailData & (
{ text: string } | { html: string } | { templateId: string } | { content: MailContent[] & { 0: MailContent } });
# paste exception/log here
BTW: 6.5.0 tampaknya tidak memiliki persyaratan { 0: MailContent }
aneh ini, tetapi konten tetap diperlukan.
nonton yang ini juga. memperbarui paket saya dan sekarang tidak yakin tentang ini
Mempertimbangkan ini sebagai duplikat dari https://github.com/sendgrid/sendgrid-nodejs/issues/1056 , kecuali saya salah.
text
, html
, atau content
. Kemudian ditunjukkan bahwa templateId
dengan sendirinya juga harus diizinkan. Ini telah diperbaiki sebagai bagian #1053 tetapi belum dirilis.@childish-sambino ini masih menjadi masalah pada 6.5.4
jenisnya didefinisikan seperti ini:
type MailDataRequired = MailData & (
{ text: string } | { html: string } | { content: MailContent[] & { 0: MailContent } });
Itu membuat content
properti yang diperlukan, apakah ada alasan untuk itu ketika MailData
mendefinisikannya sebagai properti bersyarat? Saya memperbaikinya dengan melewati:
{...mailData, content: undefined}
1041 yang diperkenalkan dalam rilis 6.5.4 memerlukan salah satu dari
text
,html
, ataucontent
.
@rodrigomf24 Apakah mailData
tidak memilikinya?
@childish-sambino tidak hanya templateId
dan dynamicTemplateData
@rodrigoomf24
Kemudian ditunjukkan bahwa templateId dengan sendirinya juga harus diizinkan. Ini telah diperbaiki sebagai bagian #1053 tetapi belum dirilis.
Apakah perbaikan ini dirilis?
Saya baru saja mendapatkan versi 7.0.0 dan saya masih melihat kesalahan ini
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.
Jika ini telah berubah di 7.0.0, di mana dokumentasi terbaru untuk api kirim? Tidak dapat menemukan banyak di sini. @kekanak-kanakan-sambino
Terima kasih.
Ya, ini dirilis pada 6.5.5
@childish-sambino Apa pendapat Anda tentang mengekspor MailDataRequired
dari paket @sendgrid/mail
juga?
@isaachinman saya tidak masalah dengan itu. Jika Anda ingin mengirimkan PR, saya dapat meninjaunya.
@childish-sambino Saya melihat-lihat, dan saya tidak terbiasa dengan pendekatan modul export =
yang diambil di sini . Saya tidak jelas tentang bagaimana ini dapat diperluas tanpa memperkenalkan perubahan yang melanggar.
Senang membantu jika Anda dapat mengarahkan saya ke arah yang benar.
Pikirkan baris ini hanya dapat diperbarui: https://github.com/sendgrid/sendgrid-nodejs/blob/master/packages/mail/src/mail.d.ts#L37
Seperti ini mungkin:
declare const mail: MailService & { MailService: typeof MailService, MailDataRequired: typeof MailDataRequired };
Tidak, itu tidak akan berfungsi karena MailDataRequired
sudah menjadi tipe. Penggunaan declare const
membuat segalanya sedikit rumit.
Lalu hanya , MailDataRequired: MailDataRequired };
?
Tidak, yang saya katakan adalah bahwa secara harfiah menambahkan atribut MailDataRequired
ke ekspor default. Jika Anda mencoba saran terbaru Anda, Anda akan mendapatkan kesalahan refers to a value, but is being used as a type
.
Saya belum melihat paket lain yang mengelola jenis dengan pendekatan modul semacam ini, jadi saya tidak bisa menawarkan saran apa pun kepada Anda. Anda memerlukan cara untuk mendukung ekspor bernama.
Biasanya saya berharap melihat sesuatu seperti ini:
export default mail
export { MailDataRequired }
@isaachinman Pikirkan ini (retas) harus memperbaikinya: https://github.com/sendgrid/sendgrid-nodejs/pull/1102
Komentar yang paling membantu
BTW: 6.5.0 tampaknya tidak memiliki persyaratan
{ 0: MailContent }
aneh ini, tetapi konten tetap diperlukan.