行业门户网站营销案例挖矿网站开发
web/
2025/10/7 18:05:33/
文章来源:
行业门户网站营销案例,挖矿网站开发,wordpress 权限插件,成都网站建设 招聘使用ts的最佳境界#xff1a;化类型于无形
在项目中使用ts可以带来类型智能提示与校验的诸多好处。同时#xff0c;为了减少类型标注#xff0c;达到化类型于无形的效果#xff0c;CabloyJS引入了ioc和依赖查找的机制。在上一篇文章中#xff0c;我们创建了一个业务模块t…使用ts的最佳境界化类型于无形
在项目中使用ts可以带来类型智能提示与校验的诸多好处。同时为了减少类型标注达到化类型于无形的效果CabloyJS引入了ioc和依赖查找的机制。在上一篇文章中我们创建了一个业务模块test-home并且采用依赖查找的机制演示了如何优雅的定义和使用资源包括Service服务、Config配置、国际化语言资源、Error错误异常
在实际的项目当中经常会遇到跨模块访问资源的场景那么CabloyJS的依赖查找机制是否仍然可以优雅的实现跨模块访问呢让我们一睹为快
模块化体系与任务说明
CabloyJS全栈框架的前后端均采用模块化体系。一个CabloyJS项目由多个业务模块组成每个业务模块都可以包含与自身业务相关的资源比如Service服务、Config配置、国际化语言资源、Error错误异常、中间件、定时任务、消息队列、系统启动项等等
在这里我们创建一个新的业务模块test-work在test-work中访问test-home提供的资源
1. 新建业务模块
cabloy api:create:module test-work2. 新建API
通过一个命令同时创建一组文件Route、Controller、Service
cabloy api:create:controller work3. 跨模块访问Service服务
接下来我们在刚才新建的Service当中访问模块test-home的Service服务
import { BeanBase, Local } from cabloy/core;
import { ScopeModule } from ../resource/this.js;Local()
export class LocalWork extends BeanBaseScopeModule {async action({ user }) {const scopeHome this.getScope(test-home);return scopeHome.local.home.action({ user });// return user;}
}通过getScope方法获取模块test-home的scope对象通过scope对象直接访问Service服务: home
看一下动画演示提供了完整的类型智能提示 4. 跨模块访问Config配置
访问模块test-home的Config配置
import { BeanBase, Local } from cabloy/core;
import { ScopeModule } from ../resource/this.js;Local()
export class LocalWork extends BeanBaseScopeModule {async action({ user }) {const scopeHome this.getScope(test-home);const prompt scopeHome.config.prompt;return scopeHome.local.home.action({ user });// return user;}
}直接通过scopeHome取得config中的prompt属性值
看一下动画演示提供了完整的类型智能提示 5. 跨模块访问国际化语言资源
访问模块test-home的国际化语言资源
import { BeanBase, Local } from cabloy/core;
import { ScopeModule } from ../resource/this.js;Local()
export class LocalWork extends BeanBaseScopeModule {async action({ user }) {const scopeHome this.getScope(test-home);const message scopeHome.locale.HelloWorld();const message1 scopeHome.locale.HelloWorld.locale(en-us);const message2 scopeHome.locale.HelloWorld.locale(zh-cn);return scopeHome.local.home.action({ user });// return user;}
}看一下动画演示提供了完整的类型智能提示 6. 跨模块访问Error错误异常
抛出模块test-home提供的Error错误异常
import { BeanBase, Local } from cabloy/core;
import { ScopeModule } from ../resource/this.js;Local()
export class LocalWork extends BeanBaseScopeModule {async action({ user }) {const scopeHome this.getScope(test-home);scopeHome.error.Error001.throw();return scopeHome.local.home.action({ user });// return user;}
}直接通过scopeHome抛出错误异常Error001
看一下动画演示提供了完整的类型智能提示 后记
CabloyJS采用ioc和依赖查找的机制让ts的使用达到了化类型于无形的最佳境界从而让我们的代码保持优雅和简洁进而也能显著提升开发效率保证代码质量
欲了解更多请关注每晚8点B站直播濮水代码
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/88609.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!