Có thể là một câu hỏi kỳ lạ, nhưng tôi tò mò nếu có thể tạo giao diện trong đó một thuộc tính hoặc một thuộc tính khác là bắt buộc.Giao diện bản ghi - Có thể yêu cầu các thuộc tính "một hoặc khác" được yêu cầu?
Vì vậy, ví dụ ...
interface Message {
text: string;
attachment: Attachment;
timestamp?: number;
// ...etc
}
interface Attachment {...}
Trong trường hợp trên, tôi muốn chắc chắn rằng một trong hai text
hoặc attachment
tồn tại.
Hy vọng điều đó có ý nghĩa.
Cảm ơn trước!
Chỉnh sửa: Đây là cách tôi đang thực hiện ngay bây giờ. Nghĩ rằng đó là một chút chi tiết (gõ botkit cho 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;
}
nhưng điều này sẽ không cho phép ông có tin nhắn kèm theo văn bản và tập tin đính kèm – Roberto
Cảm ơn bạn đã trả lời Ryan! Đó là cách tôi thực sự làm nó ngay bây giờ. Tôi đã thêm vào câu hỏi của mình ở trên. Không chắc chắn có cách nào sạch hơn không. – dsifford