Sendgrid-nodejs: MailDataRequired erfordert MailContent?

Erstellt am 7. MĂ€rz 2020  Â·  19Kommentare  Â·  Quelle: sendgrid/sendgrid-nodejs

Problemzusammenfassung

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.

Code-Auszug

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

Ausnahme/Protokoll

# paste exception/log here

Technische Details:

  • sendgrid-nodejs-Version: @sendgrid/client@^6.5.3
duplicate

Hilfreichster Kommentar

Übrigens: 6.5.0 scheint diese seltsame { 0: MailContent } Anforderung nicht zu haben, aber dennoch wird Inhalt benötigt.

Alle 19 Kommentare

Ü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.

1041, das in Version 6.5.4 eingefĂŒhrt wurde, erforderte eines von 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 oder content .

@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

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen