Ich habe ein Problem mit Typescript, weil ich damit keine E-Mail ohne Inhaltsfeld erstellen kann. Ist das MailDataRequired
richtig?
Ich habe nie Inhalte mit meinen E-Mails gesendet. Nur Auswechslungen. Die Inhalte/Vorlagen leben auf Ihren Servern.
export type MailDataRequired = MailData & (
{ text: string } | { html: string } | { templateId: string } | { content: MailContent[] & { 0: MailContent } });
# paste exception/log here
Ăbrigens: 6.5.0 scheint diese seltsame { 0: MailContent }
Anforderung nicht zu haben, aber dennoch wird Inhalt benötigt.
beobachte diesen auch. habe mein Paket aktualisiert und bin mir jetzt nicht sicher
In Anbetracht der Tatsache, dass dies ein Duplikat von https://github.com/sendgrid/sendgrid-nodejs/issues/1056 ist , es sei denn, ich irre mich.
text
, html
oder content
. SpÀter wurde darauf hingewiesen, dass templateId
allein auch erlaubt sein sollte. Dies wurde als Teil #1053 behoben, muss aber noch veröffentlicht werden.@childish-sambino dies ist immer noch ein Problem auf 6.5.4
der Typ ist wie folgt definiert:
type MailDataRequired = MailData & (
{ text: string } | { html: string } | { content: MailContent[] & { 0: MailContent } });
Das macht content
einer erforderlichen Eigenschaft. Gibt es dafĂŒr einen Grund, wenn MailData
es als bedingte Eigenschaft definiert? Ich habe es behoben, indem ich ĂŒbergeben habe:
{...mailData, content: undefined}
1041, das in Version 6.5.4 eingefĂŒhrt wurde, erforderte eines von
text
,html
odercontent
.
@rodrigomf24 Hat mailData
keine davon?
@childish-sambino nein nur ein templateId
und dynamicTemplateData
@rodrigomf24
SpÀter wurde darauf hingewiesen, dass auch templateId allein erlaubt sein sollte. Dies wurde als Teil #1053 behoben, muss aber noch veröffentlicht werden.
Ist dieser Fix freigegeben?
Ich habe gerade Version 7.0.0 erhalten und sehe diesen Fehler immer noch
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.
Wenn sich dies in 7.0.0 geĂ€ndert hat, wo ist bitte die neueste Dokumentation fĂŒr die Sende-API? Finde hier nicht viel. @kindisch-sambino
Vielen Dank.
Ja, dies wurde in 6.5.5 veröffentlicht
@childish-sambino Was hÀltst du davon, MailDataRequired
aus dem @sendgrid/mail
Paket zu exportieren?
@isaachinman Damit habe ich kein Problem. Wenn Sie eine PR einreichen möchten, kann ich sie ĂŒberprĂŒfen.
@childish-sambino Ich habe mich umgesehen und bin mit dem Modulansatz von export =
nicht vertraut, der hier verwendet wird . Mir ist nicht klar, wie dies ohne EinfĂŒhrung von Breaking Changes erweitert werden kann.
Ich helfe gerne, wenn Sie mich in die richtige Richtung weisen können.
Denke, diese Zeile kann einfach aktualisiert werden: https://github.com/sendgrid/sendgrid-nodejs/blob/master/packages/mail/src/mail.d.ts#L37
So vielleicht:
declare const mail: MailService & { MailService: typeof MailService, MailDataRequired: typeof MailDataRequired };
Nein, das funktioniert nicht, da MailDataRequired
bereits ein Typ ist. Die Verwendung von declare const
macht die Sache etwas kompliziert.
Dann nur , MailDataRequired: MailDataRequired };
?
Nein, was ich sage, ist, dass dem Standardexport buchstÀblich ein MailDataRequired
Attribut hinzugefĂŒgt wird. Wenn Sie Ihren neuesten Vorschlag ausprobieren, erhalten Sie einen refers to a value, but is being used as a type
Fehler.
Ich habe keine anderen Pakete gesehen, die Typen mit dieser Art von Modulansatz verwalten, daher kann ich Ihnen keine wirklichen VorschlĂ€ge machen. Sie benötigen eine Möglichkeit, benannte Exporte zu unterstĂŒtzen.
Normalerweise wĂŒrde ich so etwas erwarten:
export default mail
export { MailDataRequired }
@isaachinman Denke, dieser (Hack) sollte es beheben: https://github.com/sendgrid/sendgrid-nodejs/pull/1102
Hilfreichster Kommentar
Ăbrigens: 6.5.0 scheint diese seltsame
{ 0: MailContent }
Anforderung nicht zu haben, aber dennoch wird Inhalt benötigt.