【发布时间】:2020-11-07 12:46:52
【问题描述】:
我不明白下面出现的错误
这是一个最小的可重现示例
type Left = {
element: 0
}
type Right = {
element: 1
}
interface Typings {
"left": Left
"right": Right
}
function foo<T extends keyof Typings>(obj: T) {
console.log(obj.element)
// ^^^^^^^
// Property 'element' does not exist on type 'T'.
}
当然我仍然可以复制粘贴我的函数
function fooLeft(obj: Left) {
console.log(obj.element)
}
function fooRight(obj: Right) {
console.log(obj.element)
}
它运行良好,但看起来并不干净...如何避免复制粘贴我的函数?
我不能使用联合,在实际代码中几个参数依赖于Typings。
【问题讨论】:
标签: typescript generics typescript-typings