当前位置: 首页 > 知识库问答 >
问题:

导出typescript类型定义

皇甫鸿远
2023-03-14

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

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  
}
...

问题是,当我尝试导出typedefs时,如下所示:

export {IAuthRequests, T_oauth_obj}

我得到了错误:

Re-exporting a type when the '--isolatedModules'...

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

在我看来,不允许typedefs具有多个非默认导出的约束完全是无稽之谈,并且使编码变得多余且难以重用。拥有一个包含所有typedefs的文件有助于拥有更整洁和可调试的代码

P.S.

有没有办法实现我所说的目标?

共有1个答案

阎璞瑜
2023-03-14

这样试试:

export 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,
}

export interface IAuthRequests {
    getRequestToken: () => string
    Authorize(): void
    getAccessToken(): void  
}

然后导入:

import { T_oauth_obj, IAuthRequests } from "your.file"
 类似资料:
  • 定义一个类型 条件1:变量类型是一个字符串。 条件2:变量值不是 get "typescript": "~5.2.2"

  • 我撰写并发表了以下内容:https://github.com/justin-calleja/pkg-dependents 现在我写这个包在TypeScript:https://github.com/justin-calleja/update-dependents 我想在update dependents中重复使用pkg dependents(IndexInfoDict)中定义的类型,我想检查是否有

  • 代码如下,这是一段示例代码 那段for循环是想过滤有效数据。 问题是这段代码ts报错,代码逻辑没问题,问题的根本出在MenuItem的类型定义上,本意是想定义一个二级级联数据MenuItem,之所以使用T extends string而不是直接写为string,是因为在某些交互函数的参数中,希望将代表command的参数定义一个固定的可选数据CommandType。 当有子级数据的时候,关心的是子

  • 试图按照官方手册实现一个模块时,我收到了以下错误消息: 但在我的代码中没有任何地方使用过这个名称。 我该怎么解决这个?

  • 我试图在我的主文件。 entry.ts位于src/js/entry, ts,vue的类型定义位于src/js/lib/baul/vue/type/index.d.ts 编译此文件时,输出如下。顺便说一句,typescript的目标是es6和es6模块。 JQuery工作正常(看起来像),所以我用导入替换了对vue类型定义的引用。 它编译得很好,下面是输出: 问题是没有删除类型定义的import语句