最佳答案
看起来我正在努力做的事情是不可能的,但我真的希望它是可能的。
实际上,我有两个接口,我想注释一个函数参数作为它们的组合。
interface ClientRequest {
userId: number
sessionKey: string
}
interface Coords {
lat: number
long: number
}
然后,在函数中,我想这样做:
function(data: ClientRequest&Coords) { ... }
这样我的“ data”对象就可以包含来自这两种类型的所有成员。
我在 规格预览的“组合类型的成员”下面看到了一些引用,但似乎这个还没有进入。
如果不可能,我的解决方案可能是这样的:
interface ClientRequest<T> {
userId: number
sessionKey: string
data?: T
}
function(data: ClientRequest<Coords>) { ... }
在这种情况下也可以,虽然不像我想象的那么有活力。我真的希望能够在注释本身中组合多个(2 +)类型:
function(data: TypeA&TypeB&TypeC) { ... }
我猜传统的解决方案是定义一个类型来扩展这些类型,尽管这看起来没有那么灵活。如果我想添加一个类型,我必须
有没有 TypeScript 专家愿意给我指明正确的方向?