如何从export module代码块中导入已导出的type类型
你遇到的问题核心有两个:
Document是TypeScript类型,属于编译时语法,会在转译JS时被擦除,不能用JS运行时的解构语法const { Document } = values提取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
相关产品推荐
相关产品推荐

