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

如何在不直接导入的情况下使用可导入类型内部的未导出子类型?

解决方案

可以实现,不需要直接导入未导出的SubField类型,但要调整类型引用的写法——因为Config.AField.SubField这种点语法无法访问接口属性的嵌套类型,得用TypeScript的索引访问类型来实现。

正确写法示例

方式1:直接在参数中使用索引访问

import { Config } from "external-package";

function myFn(subField: Config['aField']['subField']) {}

方式2:先定义类型别名(可读性更好)

import { Config } from "external-package";

// 从Config中提取嵌套类型
type AField = Config['aField'];
type SubField = AField['subField'];

function myFn(subField: SubField) {}

原理说明

外部包中未导出的AField和SubField,是作为Config接口的属性类型存在的,而非Config命名空间的子成员,因此不能用.语法直接访问。通过Config['aField']这种索引访问语法,可以从已导出的Config类型中,逐层提取其属性对应的嵌套类型,完全不需要直接引用node_modules里未导出的类型文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 13:15:40