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

如何仅导出.d.ts文件中指定interface并限制其余接口外部访问?

解决方案

你遇到的情况是因为无顶层import/export的.d.ts文件会被TypeScript识别为全局声明文件,内部定义的所有类型默认全局可见,哪怕你没有显式导出。

推荐方案(最简洁)

只需要在config.d.ts末尾加一行export {},将文件标记为ES模块作用域即可,未显式导出的Node接口会自动变为文件私有,外部无法导入:

// config.d.ts
export interface Config {
    NAV_STRUCTURE: Node[];
}

interface Node {
    title: string;
}

// 新增此行,启用模块作用域
export {}

修改后,外部尝试导入Node接口时TypeScript会直接抛出导出不存在的报错。

可选方案(需保留全局声明时使用)

如果你需要保留文件的全局声明特性,也可以把私有类型封装到非导出的命名空间中:

// config.d.ts
export interface Config {
    NAV_STRUCTURE: PrivateTypes.Node[];
}

namespace PrivateTypes {
    export interface Node {
        title: string;
    }
}

未导出的PrivateTypes命名空间仅在当前文件内部可访问,外部无法获取到内部的Node类型定义。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.19 17:36:09