如何重新导出模块中的所有类型?TS报错ts(1383)求解
重新导出模块所有类型的可行方案
你尝试的export type * from 'react-router-dom';语法不符合TypeScript规则,所以出现报错:> Only named exports may use 'export type'. ts(1383)(翻译:只有命名导出可以使用export type)。这里提供两种可行的解决方法:
方法一:导出模块所有内容(类型+值)
如果不需要区分类型和具体值,直接用export *语法就能重新导出目标模块的所有命名导出(包括类型和值):
export * from 'react-router-dom';
方法二:仅导出所有类型(分版本处理)
如果只想导出类型而排除值,可根据TypeScript版本选择方案:
- TypeScript 4.8及以上版本:支持通过命名空间批量导出所有类型:
export type * as ReactRouterDomTypes from 'react-router-dom';
后续可通过ReactRouterDomTypes.Location这类形式访问对应类型。
- 低版本TypeScript:只能逐个列出需要导出的类型:
export type { Location, PathMatch, RouteProps, /* 其他你需要的类型 */ } from 'react-router-dom';
这种方式虽繁琐,但能精准控制导出的类型,同时兼容更低版本的TypeScript。
内容的提问来源于stack exchange,提问作者Ramon Balthazar
相关产品推荐
相关产品推荐

