小编Mat*_*ats的帖子

我找不到“displayName”的匹配 TypeScript 类型作为“type”的支柱

正如标题所述,我找不到正确的类型。我已经检查了 DevTools 和我以编程方式查看的每个组件 HAS Component.type.displayName。对于任何type不是 a 的东西来说,ElementType都是一个函数。

节点的类型是像这样提取的 React.isValidElement 的返回类型Parameters<typeof React.isValidElement>,因为我不确定它是什么。

有问题的部分:

const node = SomeThingUnknown as Parameters<typeof React.isValidElement>;
const type = ((node as unknown) as React.ReactElement<React.FunctionComponent>).type;
const displayName = typeof type === "function" ? type.displayName || type.name || "Unknown" : type;
Run Code Online (Sandbox Code Playgroud)

最后一行取自React存储库。所以我知道它有效。

node,在 VS Code 中是:

const type: string | ((props: any) => React.ReactElement<any, string | ... | (new (props: any) =>
  React.Component<any, any, any>)> | null) | (new …
Run Code Online (Sandbox Code Playgroud)

javascript type-conversion typescript reactjs

14
推荐指数
1
解决办法
4823
查看次数

标签 统计

javascript ×1

reactjs ×1

type-conversion ×1

typescript ×1