V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  nekochyan  ›  全部回复第 1 页 / 共 12 页
回复总数  240
1  2  3  4  5  6  7  8  9  10 ... 12  
4 天前
回复了 Lyn321 创建的主题 生活 一位朋友的人生给我带来了窒息感。
这不就是大多数农村出来的普通人现状吗;其他人无非就是工资高低、买房的房价高低的问题,在我看来不向父母伸手已经很好了;那还有更好的生活方式吗?回农村老家种田?那不是更被人看不起
感觉就应该给个开关,好几次晚上回家半路上就自动选择公司,一点都不智能,晚上点外卖在公司和家之间的路上只可能是回家
60 天前
回复了 wenkgin 创建的主题 问与答 可乐当水喝 会有什么问题?
牙齿 100%会坏,我身边的同事好几个都去看牙医最后回来不得不开始喝白开水了
73 天前
回复了 KaynW 创建的主题 Windows Windows 的 “更新并关机” 并不会关机
我遇到好几次了,我寻思更新并关机我都点错了呢,差点就换鼠标了
98 天前
回复了 nvyao 创建的主题 音乐 为啥我听不出来无损音乐和普通的区别?
如果你听 ASMR 的话,声音开到 80%以上会有点区别,普通会有点刺耳; 50%以下听音乐我反正是没听出啥区别
105 天前
回复了 foxkiller 创建的主题 生活 从另一个视角来看罗 vs 西贝
本质就是预制菜还卖得那么贵,你看蜜雪冰城大家骂吗,媒体批评大家还帮着维护
105 天前
回复了 zzzbbb 创建的主题 问与答 拉黑罗技!
我也是 g304 ,不到 1 年滚轮键老是往下滚着滚着会突然又回弹一下
137 天前
回复了 llej 创建的主题 程序员 如何实现模块化加载的前端和后端代码?
听起来意思是依赖注入,其他模块想用另一个模块都通过基座包去获取;我们项目大概是这么实现的:每个模块是一个文件夹,文件夹下只可引用基座包,里面调用基座包注入自身模块,这样剪切文件夹就实现了新增和移除模块

至于强类型支持就需要 ts 的类型体操了,可以写一个模块生成器实现在依赖注入,声明其注入的一定是某个类型

下面是我们项目的简单示例

模块生成器文件:

// 声明所有模块都是 TypeModules 类型
declare global {
interface TypeModules { }
}


class _coreModule {
static instance: _coreModule;
moduleMap: { [key: string]: any } = {};
static initInstance(): _coreModule {
return _coreModule.instance = new _coreModule();
}
setModule<T extends keyof TypeModules>(name: T, module: TypeModules[T]) {
this.moduleMap[name] = module;
}
getModule<T extends keyof TypeModules>(name: T): TypeModules[T] {
return this.moduleMap[name] as TypeModules[T];
}
}
export const coreModule = _coreModule.initInstance();


/**
* @desc: 模块生成器
* @param {T} name 模块名称
* @param {new () => TypeModules[T]} moduleClass 模块类
* @return {TypeModules[T]} 模块实例
*/
export function ModuleGenerate<T extends keyof TypeModules>(name: T, moduleClass: new () => TypeModules[T]): TypeModules[T] {
// eg:具体的实现; coreModule 保存注入依赖
const instance = new moduleClass();
coreModule.setModule(name, instance);
return instance;
}



测试文件:
declare global {
interface TypeModules {
/**
* @desc: [模块] 测试模块
*/
testData: TestDataClass
}
}

export class TestDataClass {
// 具体实现
}

// 注入
const testData = ModuleGenerate('testData', TestDataClass);


其他 文件或模块中

// testData 类型就是 TestDataClass ,完全不需要引入 测试模块的文件,但当测试模块删除时,这段代码编译时会报错
let testData = coreModule.getModule('testData');
138 天前
回复了 Joomaen 创建的主题 macOS macOS 26 public beta 系统数据 100 多 G
我的 MacOs40G ,系统数据 150G ,清理都清理不掉
144 天前
回复了 xiafuxin 创建的主题 问与答 V2 怎么输入 emoji,谁教教我,谢谢
这个不应该是输入法的事吗,每个输入法有不同的快捷键🤔
据我所知国内小游戏基本都是 cocos 开发,基本说明问题了
194 天前
回复了 pweng286 创建的主题 分享发现 平板长时间不充电电池饿死了
赶紧给我的小米 6 充一充,看了看三月没开机还有 45%电
195 天前
回复了 tedaz 创建的主题 问与答 大家有过突然一夜未眠的经历吗
我晚上喝可乐就会这样,有一次喝太多第二天七八点才睡着
252 天前
回复了 Justin3go 创建的主题 问与答 你用的什么视频录制软件?
用 obs 推流录屏真的很爽,之前经常跟朋友 YY 聊天老是漏麦,obs 直接配置,不捕捉 YY 声音
263 天前
回复了 coldmonkeybit 创建的主题 健康 鼠标滚轮滚到食指关节很疼有什么办法
我换了 mac 的触摸板 3 年了,有明显好转
现在我用 JB 的唯一理由是他的 git 好用,但是我发现完全可以下载个免费 pycharm 当 git 工具使用,所以转向 vs code 了,只有使用需要使用 git 时才打开一下 pycharm
1  2  3  4  5  6  7  8  9  10 ... 12  
关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   1055 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 42ms · UTC 18:13 · PVG 02:13 · LAX 10:13 · JFK 13:13
♥ Do have faith in what you're doing.