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

如何定义工具模块,让智能提示支持命名空间式自动导入?

解决方案

你可以通过将所有工具成员封装为一个对象并默认导出的方式,既保留命名空间式的调用习惯,又让IDE自动完成导入提示。具体实现如下:

修改Utilities.ts的导出定义

// Utilities.ts
// 1. 定义所有常量与函数
const appDateFormat = 'YYYY-MM-DD';

function isNullOrWhitespace(str: string): boolean {
  return !str || str.trim().length === 0;
}

function formatDate(date: Date): string {
  // 你的日期格式化逻辑
  return new Intl.DateTimeFormat('zh-CN').format(date);
}

// 2. 将所有成员整合到一个对象中
const Utilities = {
  appDateFormat,
  isNullOrWhitespace,
  formatDate
};

// 3. 默认导出该对象
export default Utilities;

// (可选)若需支持单独导入某个成员,可同时保留命名导出
export { appDateFormat, isNullOrWhitespace, formatDate };

使用方式

现在你可以通过import Utilities from './Utilities'导入,调用方式和之前的命名空间式完全一致:

// 其他业务文件中
import Utilities from './Utilities';

console.log(Utilities.appDateFormat);
console.log(Utilities.isNullOrWhitespace('  '));

此时WebStorm或VS Code会在你输入Utilities.时自动提示添加这个默认导入,完美匹配你的需求。

若你仍想保留import * as Utilities的写法,上述代码也支持,但IDE依然不会自动提示这类导入——不过默认导出的方式已经能满足「命名空间式调用+自动导入提示」的核心诉求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 19:01:23