在我有这个时刻:
export interface ChatMessage {
message: string;
sessionId: string;
type: MessageType;
}
export interface HandleSendMessage {
(
chatMessage: ChatMessage,
setMessages: React.Dispatch<React.SetStateAction<ChatMessage[]>>,
setInput: React.Dispatch<React.SetStateAction<string>>
): void;
}
export interface HandleReceiveMessage {
(
chatMessage: ChatMessage,
setMessages: React.Dispatch<React.SetStateAction<ChatMessage[]>>
): void;
}
handlesEndMessage和HandlereCeiveMessage具有冗余代码,我试图消除。 我试图将它们结合到一个处理中并扩展到它,但它不起作用,我怀疑“无效”会导致问题,因为我不确定如何扩展到此“ void”。 我尝试的是我尝试的代码:
export interface ChatMessage {
message: string;
sessionId: string;
type: MessageType;
}
interface HandleMessage {
(
chatMessage: ChatMessage,
setMessages: React.Dispatch<React.SetStateAction<ChatMessage[]>>
): void;
}
export interface HandleSendMessage extends HandleMessage {
(
setInput: React.Dispatch<React.SetStateAction<string>>
): void;
}
export interface HandleReceiveMessage extends HandleMessage {}
void而不是void。 也许我必须以不同的方式定义空白?也许我想做的根本是不可能的? trimed浏览文档,找不到足够具体的东西。 Copilot是这个白痴。
良好的参考: typescript-function-with-additional-arguments
我不认为可以扩展函数接口以添加一个参数,就像您打算这样做。 您可以使用类型声明来做到这一点,但可能不是您所需的方式。您可以在原始函数的参数列表之前轻松添加参数,但我不确定如何完成。