javascript keyof typeof找不到名称

iyfamqjs  于 2023-01-08  发布在  Java
关注(0)|答案(1)|浏览(131)

我试图提供一个类型定义,将对象定义为any,因为到目前为止,它对于对象的定义是相当开放的,而且它有一个对象内属性的键。

type Props = {
    obj: any;
    objKey: keyof typeof obj;
};

结果是objKey行上出现错误,指出:
Cannot find name 'obj'
如果我将其与函数参数一起内联使用,它可以正常工作,如下所示。

({ obj, objKey }: { obj: any; objKey: keyof typeof obj })

为什么这个错误/警告是在单独的类型定义中产生的,而不是在内联参数类型中产生的?

8hhllhi2

8hhllhi21#

应使用泛型类型参数:

type Props<P> = {
    obj: P;
    objKey: keyof P;
}

相关问题