typescript 大类拆分成多文件方案?

2022-05-27 14:06:09 +08:00
 liuidetmks

有个类 A,里面有很多方法,可能有互相调用,代码很多,是在是忍不了了,想拆分成多个文件
搜了下,ts 原生好像不支持。网上搜的方法都是要对代码改动比较多。
目前想到一个较少改动的,(只需要 复制-粘贴)
就是把想归集的方法写到一起
依次继承,
最后只要暴露最下面的类

但是要保证继承顺序,还是有些繁琐,
请问有更好的方式吗?(不改业务代码,或者极少改动)

a,b,c 这三个方法可能有互相调用的情况

class A {
    a(){    }  //业务代码
    b(){    }  // 业务代码
    c(){    } // 业务代码
}


------------- 拆分后,各个类放在不同文件----------

/// a.ts
class A_0{
    a(){} // 空 body
    b(){} // 空 body
    c(){} // 空 body
}


class A_a extends A_0{
    a(){
        /// 实际代码
    } 
}

// b.ts
class A_b extends A_a{
    b(){
        /// 实际代码
    } 
}

// c.ts
class A_c extends A_b{
    c(){
        /// 实际代码
    } 
}



/// 暴露给外面使用
class A extends A_c{
    
}
2113 次点击
所在节点    程序员
8 条回复
lzgshsj
2022-05-27 14:13:29 +08:00
感觉不能治本,代码耦合度太高了。但是你的要求又是极少改动。。。感觉以后会成屎山
codehz
2022-05-27 14:21:09 +08:00
你这拆分还不如不拆分呢,想清楚目的再决策
eason1874
2022-05-27 14:22:08 +08:00
因为业务需要,在一个大类中有上百个方法,近万行代码,并不奇怪

为了抽象而抽象,人为提高代码组织复杂度,这才是毛病,得改掉
taowen
2022-05-27 14:26:11 +08:00
拆成多个类不就行了么……
0x2CA
2022-05-27 20:14:40 +08:00
组合优与继承。。。,直接职能拆分,拆分成多个类
ychost
2022-05-28 14:54:59 +08:00
ts 貌似没有 C# 的 partial class ,不过一个 class 方法多也问题不大,高度内聚就行
lblblong
2022-05-28 22:29:39 +08:00
lblblong
2022-05-28 22:31:21 +08:00
我这个库就用了大量 mixin: https://github.com/lblblong/wechat-api-next

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/855664

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX