为何NestJS的ExternalContextCreator未从@nestjs/core导出?
为什么NestJS的ExternalContextCreator未从@nestjs/core/helpers导出?
ExternalContextCreator没被导出到@nestjs/core/helpers的顶层索引,核心原因和NestJS的API设计原则直接相关:
它是框架内部专属工具:这个类本质是NestJS用来处理路由绑定、守卫/拦截器上下文映射的底层逻辑工具,从设计之初就只供框架内部代码调用,并非面向外部开发者的公共API。如果随意暴露这类内部组件,开发者很容易依赖它的具体实现细节,后续框架迭代时一旦调整内部逻辑,用户代码就会跟着出现兼容性问题。
保障公共API的稳定性:对外导出的公共API必须严格遵循语义化版本规则,非兼容性改动会受到严格限制。但内部组件的实现可能在小版本甚至补丁版本中就发生调整,要是对外暴露,不仅会束缚框架团队的优化空间,还会给用户带来额外的维护成本。
引导符合框架设计的开发模式:NestJS希望开发者通过上层封装好的API(比如各类装饰器、官方提供的服务)来构建应用,而非直接操作底层的上下文创建逻辑。把ExternalContextCreator隐藏起来,能避免开发者写出与框架内部实现耦合过高的代码,保证应用架构更贴合NestJS的设计思路。
内容的提问来源于stack exchange,提问作者Yev
相关产品推荐
相关产品推荐

