You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从export module代码块中导入已导出的type类型

你遇到的问题核心有两个:

  1. Document是TypeScript类型,属于编译时语法,会在转译JS时被擦除,不能用JS运行时的解构语法const { Document } = values提取
  2. Document是嵌套在values命名空间(你写的export module是TS旧版命名空间语法,等价于export namespace)下的导出,不是模块的顶层导出,不能直接从模块路径导入

正确导入方式

方式1:直接通过命名空间访问

如果会用到values下的多个类型/值,直接导入命名空间后访问即可:

// 若values下只有类型,用import type减少无效导入(TS 3.8+支持)
import type { values } from "package";
// 若values下还有运行时可用的JS值,去掉type即可
// import { values } from "package";

// 使用示例
type UserDoc = values.Document<{
  id: string;
  nickname: string;
}>

方式2:单独提取Document类型

如果不想每次都带values.前缀,导入后给类型起别名即可:

import type { values } from "package";
type Document<T = object> = values.Document<T>;

// 后续直接使用Document
type OrderDoc = Document<{
  orderNo: string;
  amount: number;
}>

内容的提问来源于stack exchange,提问作者lmonninger

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 02:42:00