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

ES6/TypeScript能否在单条import语句同时导入全部及指定导出?

解决方案

纯JavaScript方案

ES模块语法规则明确禁止在同一条import语句中同时使用命名空间导入(* as mod)和具名导入({ f2 }),你尝试的import { * as mod, f2 } from "./mod.mjs"属于非法语法,这是语言层面的硬性限制。

要实现你的需求,只能拆分写成两条独立的import语句:

// 将所有具名导出收集到mod对象中
import * as mod from "./mod.mjs";
// 单独导入f2
import { f2 } from "./mod.mjs";

这种写法完全满足要求:无需模块的默认导出,也不需要导入后解构,同时实现了“收集所有导出为mod别名”和“单独获取f2”的目标。而且ES模块有缓存机制,模块只会被加载一次,不用担心重复加载的问题。

TypeScript方案

TypeScript完全遵循ES模块的语法规范,因此也没有特殊语法支持在单条import语句中同时实现命名空间导入和具名导入。你需要使用和纯JavaScript完全相同的两条import语句来达成需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 20:57:17