Typoskript-Schnittstelle - Möglich zu machen, "die ein oder andere" Eigenschaften, die benötigt werden?

Möglicherweise eine seltsame Frage, aber ich bin neugierig, ob es möglich ist, eine Schnittstelle, wo eine Eigenschaft oder das andere erforderlich ist.

Also, zum Beispiel...

interface Message {
    text: string;
    attachment: Attachment;
    timestamp?: number;
    //...etc
}

interface Attachment {...}

In dem genannten Fall, würde ich mag, um sicherzustellen, dass entweder text oder attachment vorhanden ist.

Hoffentlich, das macht Sinn.

Vielen Dank im Voraus!


Edit: Dies ist, wie ich es jetzt gerade Tue. Dachte, es war ein bisschen Ausführlicher (Eingabe botkit für slack).

interface Message {
    type?: string;
    channel?: string;
    user?: string;
    text?: string;
    attachments?: Slack.Attachment[];
    ts?: string;
    team?: string;
    event?: string;
    match?: [string, {index: number}, {input: string}];
}

interface AttachmentMessageNoContext extends Message {
    channel: string;
    attachments: Slack.Attachment[];
}

interface TextMessageNoContext extends Message {
    channel: string;
    text: string;
}
InformationsquelleAutor dsifford | 2016-06-07
Schreibe einen Kommentar