【发布时间】:2018-03-22 21:57:15
【问题描述】:
type Container<T> = T extends any[] ? ArrayContainer<T> : ObjectContainer<T>
type ArrayContainer<T> = {
set(arr: T, index: number): void
}
type ObjectContainer<T> = {
set(obj: T): void
}
const testContainer = {} as any as Container<{ boxedNumber: number } | number>
// Does not compile
testContainer.set(33)
条件类型决定返回一个ObjectContainer<{ boxedNumber: number }> | ObjectContainer<number>,使得调用 ObjectContainer 上的任何函数都是不可能的。
有没有办法强制返回ObjectContainer<{ boxedNumber: number } | number>?
使用可用的最新 2.8 版本。
【问题讨论】:
标签: typescript