首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >导出类型记录类型定义

导出类型记录类型定义
EN

Stack Overflow用户
提问于 2021-03-27 15:16:19
回答 2查看 151关注 0票数 0

在我的项目中,我希望有一个文件包含所有的类型记录定义,如下所示:

type_defs.tsx

代码语言:javascript
运行
复制
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  
}
...

问题是,当我试图导出这样的类型时:

代码语言:javascript
运行
复制
export {IAuthRequests, T_oauth_obj}

我知道错误:

代码语言:javascript
运行
复制
Re-exporting a type when the '--isolatedModules'...

正如我在网络中所发现的那样,只能有一个默认的类型导出文件,这意味着我必须为每种类型的定义准备一个文件,这绝对是荒谬的!

在我看来,不允许对typedefs进行多个、非默认的导出的限制完全是胡说八道,使得编码变得多余,难以重用。有一个文件与所有的类型,可以帮助有更整洁和可调试的代码。

P.S

有什么方法可以达到我所说的目标吗?

EN

Stack Overflow用户

发布于 2021-03-27 16:01:01

导出的类型可以命名,或者每个文件可以有一个默认类型导出。export关键字根本不允许导出多个值。

因此,由于它一次只适用于一个值或一个类型,这将无法工作,因为{IAuthRequests, T_oauth_obj}不是一个有效的单一类型。

您可以执行整个类型的默认导出,但这可能不是您想要的:

代码语言:javascript
运行
复制
export default { req: IAuthRequests, oauth: T_oauth_obj }

或者你可以:

代码语言:javascript
运行
复制
export interface IAuthRequests { ... }
export interface T_oauth_obj { ... }

如果您想要一个export关键字来导出多个命名类型,那么我没有其他帮助,只能说它不会这样做。来回答为什么您可能要问类型记录维护人员。答案可能是经过深思熟虑的设计选择,以更好地匹配export的工作方式是简单的JS。

票数 1
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66832885

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档