如何在d.ts文件的namespace中引用React库类型到React变量?
修复PluginApi命名空间中React类型引用问题
原代码里的typeof React会优先指向当前PluginApi命名空间内声明的React变量,形成无效的循环引用,无法关联到外部React库的类型。可以通过以下两种方式修复:
方法一:使用模块类型查询(无需导入语句)
直接在类型中通过import('react')获取React库的完整类型,适用于不想将d.ts文件转为模块的场景:
declare namespace PluginApi { const React: typeof import('react') }
方法二:先导入React类型再声明
如果你的d.ts文件允许作为模块(可以包含import/export语句),先导入React类型后再使用:
import type * as React from 'react'; declare namespace PluginApi { const React: typeof React; }
这两种方式都能让PluginApi.React的类型正确关联到React库的类型,使用者就能获得正常的代码提示。
内容的提问来源于stack exchange,提问作者Raghavan Vidhyasagar
相关产品推荐
相关产品推荐

