首页 > 解决方案 > 在同一对象的另一个属性中使用推断的属性类型

问题描述

是否可以在 TypeScript 中执行此操作?

注意:任何属性名称在props参数中都是有效的

type Values<T extends object> = Pick<T, Exclude<keyof T, 'onStart'>>

declare function animate<T extends {
    onStart?: (values: Values<T>) => void
}>(props: T): void

animate({
    foo: 100,
    onStart(values) {
        // $Expect(values == { foo: number })
    }
})

操场

标签: typescript

解决方案


推荐阅读