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

在TypeScript定义文件中是否可直接继承导入模块的导出类型?

解答

你写的第一种直接继承import()导入类型的写法本身就是合法的 TypeScript 语法,不需要额外定义类型别名中转。

适用条件

该语法从 TypeScript 2.9 版本开始正式支持,只要你使用的是 2.9 及以上版本的 TypeScript,以下代码可以直接在 .d.ts 类型定义文件中正常运行:

interface A extends import("some-module").B {
  // 在此定义A的自有属性和方法
  customProp: string;
}

报错排查方案

如果你的环境中该写法出现报错,可以按以下顺序排查:

  • 确认本地 TypeScript 版本,低于 2.9 时升级到最新稳定版即可
  • 检查tsconfig.json中的moduleResolution配置,确保设置为node/bundler/node16等支持模块路径解析的选项
  • 核对导入路径some-module的正确性,以及该模块确实对外导出了名为B的类型

替代实现

如果受环境限制无法使用直接继承的写法,除了你目前在用的类型别名中转方案,还可以用交叉类型实现同等效果,同样不需要单独定义中转类型:

type A = import("some-module").B & {
  // 在此定义A的自有属性和方法
  customProp: string;
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 16:48:05