在我的项目中,我希望有一个文件包含所有的类型记录定义,如下所示:
type_defs.tsx
interface T_oauth_obj {
oauth_callback: string,
oauth_consumer_key: string,
oauth_nonce: string,
oauth_signature_method: string,
oauth_timestamp: string,
oauth_version: number,
oauth_signature: string,
}
interface IAuthRequests {
getRequestToken: () => string
Authorize(): void
getAccessToken(): void
}
...问题是,当我试图导出这样的类型时:
export {IAuthRequests, T_oauth_obj}我知道错误:
Re-exporting a type when the '--isolatedModules'...正如我在网络中所发现的那样,只能有一个默认的类型导出文件,这意味着我必须为每种类型的定义准备一个文件,这绝对是荒谬的!
在我看来,不允许对typedefs进行多个、非默认的导出的限制完全是胡说八道,使得编码变得多余,难以重用。有一个文件与所有的类型,可以帮助有更整洁和可调试的代码。
P.S
有什么方法可以达到我所说的目标吗?
发布于 2021-03-27 16:01:01
导出的类型可以命名,或者每个文件可以有一个默认类型导出。export关键字根本不允许导出多个值。
因此,由于它一次只适用于一个值或一个类型,这将无法工作,因为{IAuthRequests, T_oauth_obj}不是一个有效的单一类型。
您可以执行整个类型的默认导出,但这可能不是您想要的:
export default { req: IAuthRequests, oauth: T_oauth_obj }或者你可以:
export interface IAuthRequests { ... }
export interface T_oauth_obj { ... }如果您想要一个export关键字来导出多个命名类型,那么我没有其他帮助,只能说它不会这样做。来回答为什么您可能要问类型记录维护人员。答案可能是经过深思熟虑的设计选择,以更好地匹配export的工作方式是简单的JS。
https://stackoverflow.com/questions/66832885
复制相似问题