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

如何在不使用default的情况下结合export与satisfies语法?

不使用default export的实现方式

你遇到的语法错误是因为export { ... }语法无法直接搭配satisfies使用——satisfies用来约束单个表达式的类型,而export { x, y, z }是导出多个已声明的独立变量,两者语法不兼容。

如果不想用default export,可以先将三个变量合并为一个符合Command类型的对象,再通过命名导出的方式导出这个对象,具体代码如下:

import type { Command, Commander, Options } from "zap";
import { Option, command } from "zap";

const name: string = "single";

const options: Options = {
  name: Option.string(),
};

const commander: Commander = async ({ values }) => {
  console.log(`single file command for ${values.name}`);
};

// 先合并对象并通过satisfies约束类型,再命名导出
const singleCommand = { commander, name, options } satisfies Command;
export { singleCommand };

补充说明

如果zap库的Command类型要求导出的是一个包含commander、name、options三个属性的对象,那么分开导出三个独立变量是不符合库的类型要求的——因为库在导入时会期望获取一个完整的Command对象,而非三个零散的变量。因此上面的方式是最符合类型规范的命名导出实现。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 09:18:13