V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
rookie2luochao
V2EX  ›  程序员

中大型业务项目使用 ts 开发怎么样?是装逼吗?大家说说看法?

  •  
  •   rookie2luochao ·
    rookie-luochao · 31 天前 · 3657 次点击

    我刚来现在公司的时候,到处是 3000 行,4000 行的 vue + js 文件,基本上随便增减个小功能,直接吐血,各种解构语法操作, { ...obj, ...obj2, ...obj3 }, 其中 obj obj2 obj3 还有相同的 key 冲突,然后你安排一直在这里的前端老员工去改,他直接说改不动,不要安排他,what ???你是核心开发者,你改不动?喊新来的,更不愿意改,基本上大多数都是我去改。哪有这么好的事情?天天自己用 js 写新项目?要他写 ts 更不愿意写,使劲抱怨,就差拿屠龙刀砍我了

    后面开新项目,我慢慢带组成员用 ts 开发项目, 虽然初期抱怨不断,eslint 太严格了,tsc 过不了啪啦啪啦的, 反正就是使劲喷,但是经历 2 个月后 ts 开发慢慢习惯后,他们说真香,改别人写的代码好像也改的动了

    要后端把 apifox + apifox idea 用了起来,然后我维护了一个兼容 apifox 的解析 swagger/openapi 插件,它支持 axios, fetch, uni.request, taro.request 等等常见客户端

    如果你也用 apifox, 或者 swagger/openapi 规范文档,你可以试试这个插件 openapi-ts-request

    大家说说看法? 中大型业务项目用 ts 开发好,还是 js 开发好? 真的是我太装逼了吗?

    ps:昨天帖子发出去就被关小黑屋了😭

    55 条回复
    dcsuibian
        1
    dcsuibian  
       31 天前
    看看现在的风气就知道了,以前开源项目上 ts 是新闻,现在开源项目不用 ts 是新闻。
    CodeCodeStudy
        2
    CodeCodeStudy  
       31 天前   ❤️ 1
    肯定是 ts 好,小型项目都可以用,能加类型就加类型,对程序员和 IDE 都好,eslint 弄宽松点
    bzw875
        3
    bzw875  
       31 天前
    村通网了吗,2420 年还用 js 开发应该是老旧的国企,日企 JS 仙人。
    superhuai11
        4
    superhuai11  
       31 天前
    目前没有动力去使用 TS ,不知道是不是因为项目大小的问题。大概是觉得 “有水平的人写 JS 也能比较优雅”
    wusheng0
        5
    wusheng0  
       31 天前 via Android   ❤️ 33
    标题引战,正文夹带私货,差不多得了。

    要讨论就好好讨论,讲故事就讲故事,推广就放推广区
    rookie2luochao
        6
    rookie2luochao  
    OP
       31 天前
    @CodeCodeStudy 对,用 ts 很关键一环就是 eslint 的规则策略,这真是个学问,确实要适当,领导还要我在 lint-staged 加上 tsc, 加这个功能 tsc 还不支持,tsc 命令行编译支持的配置参数很少,对别名那些都解析不了
    rookie2luochao
        7
    rookie2luochao  
    OP
       31 天前
    @wusheng0 都是屌丝程序员,又不赚钱,纯免费,没必要这么大敌意,又不赚你一分一毫,看看大家说法有何不可,你要喷我可不惯着你
    chuck1in
        8
    chuck1in  
       31 天前
    我以前经常用 ts 但是后来不咋用了。我主要觉得看类型特别累人。
    rookie2luochao
        9
    rookie2luochao  
    OP
       31 天前
    @wusheng0 你要喷可以去我 github 主页加我邮箱,欢迎对喷,我就看不惯你们这些阴阳怪气的,你自己也可以发,你也可以不评论,我怎么样,关你什么,吃你家大米饭,喝你家粥了?
    rookie2luochao
        10
    rookie2luochao  
    OP
       31 天前
    @superhuai11 很多著名开源库都是 js ,代码很优雅,js 和用的人有很大关系,以过往经验看,js 项目确实维护难度很高
    zy0829
        11
    zy0829  
       31 天前   ❤️ 2
    vue+ts 真的有点怪怪的 不如 react 来的自然
    HTML001
        12
    HTML001  
       31 天前   ❤️ 1
    TS 与"田园式敏捷开发"很难兼容,而且做多了类型体操,换一个新人维护,会很难受
    chendy
        13
    chendy  
       31 天前
    技术都是按需用的,要看具体的业务复杂度和人员能力
    业务不复杂 JS 也能 hold 住,人员能力不行用 TS 最后也是飞 any

    顺便吐槽一下,全文没见别人说你装逼,就你自己觉得你装逼
    然后推广太硬了,真的太硬了
    Opportunity
        14
    Opportunity  
       31 天前   ❤️ 1
    现在 node 原生支持 ts 了,我连 3 行的脚本都用 ts 写
    rookie2luochao
        15
    rookie2luochao  
    OP
       31 天前
    @zy0829 我用起来也是如此感受,很别扭,那个 defineProps 定义时使用的 ts 类型也很奇怪,react 其实心智负担也大,奈何别人就是 ast 体验好很多,react 要是能做好优化不让用户担心性能就好了,最好 uniapp 也支持 react😭
    HTML001
        16
    HTML001  
       31 天前
    @superhuai11 认同,水平不够还写 TS 的话,写出来真的是一坨
    zhangeric
        17
    zhangeric  
       31 天前   ❤️ 1
    软文吧.还是引战的软文.
    JohnnyGO
        18
    JohnnyGO  
       31 天前
    是的,OP 太装逼了
    rookie2luochao
        19
    rookie2luochao  
    OP
       31 天前
    @Opportunity node 核心开发们越来越活跃,更新频率很高,很牛逼,3 行代码看得出你对 ts 也是真爱
    Ocyss
        20
    Ocyss  
       31 天前
    ts 的类型定义还是挺好用的, 能做到很多约束, 类型体操玩过一遍基本上就熟练了. 我写自己项目就喜欢用类型体操, 直接类型约束一个结构对象 https://github.com/Ocyss/boos-helper/blob/master/src/hooks/useModel/type.ts
    rookie2luochao
        21
    rookie2luochao  
    OP
       31 天前
    @zhangeric 我的错,我道歉,但是首页引战的讨论也不少?
    xu455255849
        22
    xu455255849  
       31 天前
    如果你是团队开发,建议上
    如果你是个人开发,随意
    rookie2luochao
        23
    rookie2luochao  
    OP
       31 天前
    @JohnnyGO 确实被这样喷了,所以,心里不得劲,找个途径排解下
    rookie2luochao
        24
    rookie2luochao  
    OP
       31 天前
    @JohnnyGO 顺便看看对于 ts 开发业务项目这个问题的想法,我留意 v 站很久也没有发现该问题讨论
    LandCruiser
        25
    LandCruiser  
       31 天前
    太年轻了,把公司项目维护好,代码写得好,对老员工有什么好处?不还是该下班就下班,该加班就加班,该拿多少钱拿多少钱吗?还是说用 TS 就能涨工资,或者跳槽涨薪?都不能呀,没有意义
    lisxour
        26
    lisxour  
       31 天前
    想把 js 玩好,那不也是成吨的 jsdoc 类型注解,没有 jsdoc 的 js 代码那不就等于是全程 any 的 ts 代码,调试全靠 console.log ,ts 主要问题是在编译上,不是类型上
    horizon
        27
    horizon  
       31 天前
    现在不用 ts 我不会写代码
    liaohongxing
        28
    liaohongxing  
       31 天前
    项目全 ts 类型标注。
    rookie2luochao
        29
    rookie2luochao  
    OP
       31 天前
    @dcsuibian 对,如果说引战的喷子,不妨看看为啥那些框架开发者要发不再使用 ts 的新闻,写个 changelog 不行吗?我觉得喷子大可以去喷这些巨佬
    hucw21750
        30
    hucw21750  
       31 天前
    我只用在对接后端 API ,以及通用的组件中。我们后端也是用 Java Swagger 标注 API ,我写了个 python 脚本,要开发或维护时通过 Api Tag 抓取 Api 文档数据,然后反向转换为前端 TS 的 Api 及 Model 文件,Api 文件里面的方法明确标注返回或请求提交的 Model ,请求时候默认转换 Model 实例。这样做好处很多:Api 统一管理、基本避免后端返回 NUll 导致空白页、字段提示、类型校验、在 Model 中抽象业务处理等等。其它地方开发不强求 ts 。
    yangth
        31
    yangth  
       31 天前
    暂时不打算上 ts
    cssTheGreatest
        32
    cssTheGreatest  
       31 天前
    “然后你安排一直在这里的前端老员工去改,他直接说改不动,不要安排他”

    我比较好奇这个。。是我呆的公司少了吗?很少见这种工作风格哈哈
    kneo
        33
    kneo  
       31 天前 via Android
    有没有一种可能,只有你自己觉得自己装了个逼?
    sighforever
        34
    sighforever  
       31 天前
    @HTML001 写业务代码可以完全不体操的,可以把类型完全当成类型描述用,不整哪些花里胡哨的泛型啥的。那么多有类型的后端语言也没啥幺蛾子啊
    Nielsen
        35
    Nielsen  
       31 天前
    观点:
    多写点 interface 描述下 API 接口,没坏处吧。
    实在处理不好的 any 一下也没多麻烦吧。
    Orangeee
        36
    Orangeee  
       31 天前
    TS 是 JS 的超集 =》 JS 是 TS 的子集 =》 写不好 JS =》 写不好 TS
    freezebreze
        37
    freezebreze  
       31 天前
    要不怎么说留着那些老顽固有什么用,直接开了,招会 ts 的 便宜又好用
    thosai
        38
    thosai  
       31 天前
    别人我不知道,但是 OP 是装逼
    CatchXS
        39
    CatchXS  
       31 天前
    本质是还是开发规范,如果 js 开发的时候,注释、编码规范能很好的执行下去,可以不用 ts 的,ts 个人现在感觉是,强制大家遵守某一个规范,编码下限会比 js 高一些。
    cookygg
        40
    cookygg  
       31 天前
    写完 ts 再去写鸿蒙 next 就简单了
    nicholasxuu
        41
    nicholasxuu  
       31 天前   ❤️ 1
    TS 配上 copilot/cursor 就如虎添翼了,繁杂的定义 interface 交给 AI 就很快解决了。
    甚至可以考虑把 js 代码直接转成 ts 代码的。
    PaulSamuelson
        42
    PaulSamuelson  
       31 天前   ❤️ 1
    apifox 不登录不让用,卡的批爆,非常垃圾,不如 apipost
    guanzhangzhang
        43
    guanzhangzhang  
       31 天前
    python 的弱类型,项目大了多人合作并且有屎山代码下受不了,要是有个 typepython 就好了😫
    d119
        44
    d119  
       31 天前
    最近把一个后端项目用 ts 重构了,写惯了 js 说实话是很快,ts 写起来慢,确实是为了规范,为了长期好维护,但发到线上区,对比之前的运行速度,发现也比纯 js 的慢
    liubaicai
        45
    liubaicai  
       31 天前
    declare type TAny = any;
    BeforeTooLate
        46
    BeforeTooLate  
       31 天前
    你这写的到底是不是软文啊,我陷入一阵思考
    Hilalum
        47
    Hilalum  
       31 天前
    还有更装逼的,fpts
    c3de3f21
        48
    c3de3f21  
       31 天前
    以下情况满足一点无需使用
    - 1.团队有规范流程
    - 2.每个函数有入参返回注释最好是 jsdoc
    - 3.有各个函数的文档

    以下情况满足一点需要使用

    - 1.短平快后期需要修改(非重构)
    - 2.团队不愿意写文档或者团队规模较小
    - 3.无法约束团队成员随便起名字语不达意什么的
    luyinge
        49
    luyinge  
       31 天前   ❤️ 1
    下意识的看了下发贴日期。。。这都 2024 年了,这种问题有哪怕是一丁点讨论的价值么?
    a132811
        50
    a132811  
       31 天前
    @guanzhangzhang
    python3.5 以后就支持类型注解了,习惯了类型、单测后,没有它们我都不敢发代码了。

    比 ts 好一点是内置支持,不需要像 ts 一样编译成 js 。
    比 ts 差的一点是类型系统不强大,没有类型体操(某种意义上这其实算优点)
    gechang
        51
    gechang  
       31 天前
    让我改?我把 ts 全部转 js
    shui14
        52
    shui14  
       31 天前
    别搞这种贴,有价值的会直接拉黑你
    退一步讲,十年前的贴吧,人家用 backbone 妨碍到谁了,那种业务级别,那个用户量给出的迭代压力,现在有谁敢说能打,连腾讯几次挑战全部失败。软件工程系统设计很重要。第一门课,程序设计( c 语言版),你学的是程序设计不是学 c 语言。为什么别人用古老 js 写出的项目稳得不行,今天的网红们写十行 nextjs 输出十五行呢,那些地图 sdk 都这么多年没更新,稳得一批,用 sdk 写业务的反而三天两头的增笑
    TS 跟 JS 有什么关系,它就是一个约束工具,跟怎么组织怎么规划结构有毛关系,有多少人搞成了 anyscript ,稍微复杂一点的类型最后还不是单独拎出来
    JS 做大型项目不可靠是针对整个系统而言,这个问题和 php 一样,不是它的能力不行,是这门语言的设计哲学。要拿捏它需要很高能力的人,那为什么不选个工业级语言,这么多工具,那个螺丝刀顺手提那个不好吗
    dadaji
        53
    dadaji  
       30 天前 via iPhone
    团队的项目全上了,强制 eslint tsc ,禁止 any ,
    dadaji
        54
    dadaji  
       30 天前 via iPhone
    不想写 ts ?找个机会换人就好了,外面多的是人,不写 ts 就是影响我下班
    swim2sun
        55
    swim2sun  
       30 天前
    自从出了易建联的新闻后就无法正视 ts 这个缩写了 - -
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5142 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 08:31 · PVG 16:31 · LAX 00:31 · JFK 03:31
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.