如何使用现代打字稿编写接口的动态键? [重复]

问题描述 投票:0回答:2

我如何写这句话以达到与下面示例相同的结果,从而使我可以选择两个密钥?

export interface RTCPeerExchange {
  from: string;
  [offer|answer]: RTCSessionDescriptionInit;
}

我知道我可以使用一种类型来实现这一目标,但是有没有一种方法可以使用接口实现相同的方法?

type RTCPeerExchange = { from: string; answer: RTCSessionDescriptionInit; }|{ offer: RTCSessionDescriptionInit; from: string; }
    
typescript
2个回答
1
投票
可能有一种通过通用接口进行操作的方法。

interface RTCPeerExchange<T extends "offer" | "answer"> { from: string; type: T; data: T extends "offer" ? RTCSessionDescriptionInit : RTCSessionDescriptionInit; }

检查是否有帮助。
    

,但很酷的想法也许您可以向社区请求:

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.