V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
ChrisFreeMan
V2EX  ›  程序员

推上看到的今天的热门讨论关于独立开发是否更适合 JavaScript 而不是 TypeScript

  •  1
     
  •   ChrisFreeMan · 13 天前 · 6954 次点击

    https://twitter.com/tibo_maker/status/1780920476744757601

    image

    好奇有多少人是从 TypeScript 回到 JavScript 的,为什么?你用了多久的 TypeScript 呢 (自由随意的讨论)?

    第 1 条附言  ·  12 天前
    一觉( jiao )起来发现多了这么多人讨论,大家的回复我都有好好看,就不一一回复了,感谢各位回复。
    111 条回复    2024-04-24 08:32:50 +08:00
    1  2  
    ChrisFreeMan
        1
    ChrisFreeMan  
    OP
       13 天前   ❤️ 3
    我个人是非常感激 TypeScript 的,主要是类型提示和检查,排错,以及重构,是真正的节省了我的时间。而且总有一种很放心交给 ts 编译的感觉。我的个人项目规模在 17000 行代码左右。
    kneo
        2
    kneo  
       13 天前 via Android   ❤️ 2
    不同意。
    但是我觉得没什么值得讨论的。都说了独立开发,不碍别人的事。
    ChrisFreeMan
        3
    ChrisFreeMan  
    OP
       13 天前
    @kneo 主要还是好奇有没有人真正经历过这种转换,以及发现效率的差距,想起这个问题主要是还是因为最近看了一本书叫做《黑客与画家》作者在书中重复强调他成功的秘诀在于使用了一门属于黑客语言 lisp ,因为其开发的效率打败了其他的公司,所以想起了这个问题。
    cmdOptionKana
        4
    cmdOptionKana  
       13 天前   ❤️ 3
    独立开发用 JS ,相当于不限牌、没有购置税、汽油便宜、不堵车的情况下开手动挡油车,确实是一个不错的选择(便宜好用,缺点可控,偶尔可以骚操作)。
    wuzzispacelake
        5
    wuzzispacelake  
       13 天前
    无非是被工具链弄烦了
    只能祝他们好运了,尊重个人选择
    ChrisFreeMan
        6
    ChrisFreeMan  
    OP
       13 天前
    @cmdOptionKana 感谢回复,主要是现在都是流行类型安全了,老实说我写的 ts 比 js 多,很怕自己被主流观点给带偏了。但是又怕浪费自己时间去试错,还是很好奇大家的看法。
    cmdOptionKana
        7
    cmdOptionKana  
       13 天前   ❤️ 1
    @ChrisFreeMan

    > 他成功的秘诀在于使用了一门属于黑客语言 lisp

    这让我想起《这个杀手不太冷》里的杀手说,他杀人的秘诀是用匕首,而菜鸟新人一般先学狙击。高手用匕首确实有很多优点,但缺点也很明显:你要先成为高手。
    ChrisFreeMan
        8
    ChrisFreeMan  
    OP
       13 天前
    @wuzzispacelake 个人持续关注这种转换的趋势,以及大家的意见。
    yechentide
        9
    yechentide  
       13 天前
    我自己习惯了 Swift 和 Java 那样的, 所以可能的话我都尽量用 TS.
    当然这只是我自己的做法, 个人开发喜欢怎么来就怎么来
    ChrisFreeMan
        10
    ChrisFreeMan  
    OP
       13 天前
    > 这让我想起《这个杀手不太冷》里的杀手说,他杀人的秘诀是用匕首,而菜鸟新人一般先学狙击。高手用匕首确实有很多优点,但缺点也很明显:你要先成为高手。
    @cmdOptionKana 😂好吧,杀人诛心,这个确实无法反驳,但还是希望看到更有说服力的说法。
    ChrisFreeMan
        11
    ChrisFreeMan  
    OP
       13 天前
    @yechentide 我理解,就像是喜欢 IDE 的人无法理解用 vim 的感觉,所以想知道那些游走在两个世界的人的真实看法。
    daysv
        12
    daysv  
       13 天前
    真严谨要类型我喜欢 rescript , 个人 solo 或大部分 2 到 3 人前端项目,js 足够舒服了
    ChrisFreeMan
        13
    ChrisFreeMan  
    OP
       13 天前
    @daysv 感谢回复,从来没听过 rescript ,所以快速浏览了一下,个人并不感冒,官网开头的代码示例展示的是 react component 就让我觉得很奇怪,然后后续的快速起步文档里的代码示例也没有让我看到这个语言的优势,加上作者本人并没有什么其他知名的项目(如有冒犯抱歉),让我并没有欲望进一步尝试的欲望。
    crysislinux
        14
    crysislinux  
       13 天前 via Android
    我随手写个脚本我都要用 ts ,js 是不可能 js 的,也就浏览器控制台会写 js
    monster1priest
        15
    monster1priest  
       13 天前
    入门的时候就是 TS ,离开了 TS 的类型提示,用 JS 我甚至都记不起来对象的属性和方法
    srlp
        16
    srlp  
       13 天前
    ts 真的极大保障可靠性,用 vscode 或 ide 等类型推导也很有用和很方便,不明白为什么这么多人嫌烦。
    xntzmk
        17
    xntzmk  
       13 天前
    已经离不开类型提示了
    ChrisFreeMan
        18
    ChrisFreeMan  
    OP
       13 天前
    @crysislinux
    @monster1priest
    @srlp
    @xntzmk 我和你们是一个想法。
    levelworm
        19
    levelworm  
       13 天前
    @ChrisFreeMan 我觉得这其实不是他使用了 Lisp ,而是他比较聪明,一般聪明人才用的好 Lisp 。既然他很聪明,那用啥都没啥太大区别。Paul Graham 对吧,我记得是他。
    ns09005264
        20
    ns09005264  
       13 天前
    > 这让我想起《这个杀手不太冷》里的杀手说,他杀人的秘诀是用匕首,而菜鸟新人一般先学狙击。高手用匕首确实有很多优点,但缺点也很明显:你要先成为高手。
    @ChrisFreeMan 这句话我的理解是菜鸟应该学 Typescript ,类型安全+丰富的自动补全能减少很多基础错误,高手可以用 Javascript ,经验丰富,长期积累下来的编程范式会避免一些错误。
    ChrisFreeMan
        21
    ChrisFreeMan  
    OP
       13 天前
    @levelworm 对,是他,整书都是一直围绕他关于如何创建 Viaweb 以及取得成功以及他分享的一些非常浅的人生经验,让我很匪夷所思这本书为啥评价那么高。但我并不怀疑他是个很聪明的人。
    luodan
        22
    luodan  
       13 天前
    对于我这样中低水平的人来说,ts 确实帮了大忙。在写代码的过程中实时的帮我除错误。超过一半的机率在第一次运行时就完全正常。感觉我也不可能成为那种随心所欲,灵活运用各种语言的高级人士。
    cwcc
        23
    cwcc  
       13 天前   ❤️ 2
    我一般都用 ts ,但是又同时无视所有 IDE 的 warning 和 typo ,以至于最终效果和直接用 js 其实差不多。
    levelworm
        24
    levelworm  
       13 天前
    @ChrisFreeMan 我觉得他和很多聪明人一样,没觉得聪明对自己的帮助有多大。不过这也能理解。只是我一般就不会按照他们的建议来,自找苦吃啊。。。
    ChrisFreeMan
        25
    ChrisFreeMan  
    OP
       13 天前
    @luodan
    @ns09005264 我理解你们的意思,我的第一门语言不是 ts 或者 js ,我真正想知道的还是关于编程思维的转换,就是开发期间是否需要过度关注所谓的类型安全,以及基于类型所思考的抽象所付出的代价带来的回报是否对得起个人。这个问题让我一直很在意。
    Subilan
        26
    Subilan  
       13 天前 via iPhone
    我个人认为 TypeScript 还是像一部分人宣称的那样,是为了大项目而存在的,而对于一些小型的项目来说可能又成了一种负担。但是在这里对于大小的区分,我认为这不仅和代码量有关,还和一个团队的沟通模式,乃至个人习惯有关。

    像 Solo 或者几个人组成的开发团体,沟通的模式相当具有多样性,因此 TS 这种“与代码高度契合的沟通”不一定能够成为一个很好的选择。这中间甚至还可能有一些微妙的个人因素,比如说有些人就喜欢 TS 这种相比于 JS 高度模式化的代码,有些人就恰恰相反。

    从实际角度来看,TS (相比于 JS 多)起到的作用大概是把一些设计代码化,以及借助 tsc 达成所谓的 type safe 。但是当这群人不需要也能做好这一切时,那即使有那么一点可能性会犯一些错误,但是不需要就是不需要。

    所以我个人感觉还是按照具体需求来,没有“更适合”一说。目前而言我做的一些简单的小脚本是用纯 JS 写,时间比较紧迫的项目也是用 JS 写,而一些慢节奏、投入大量时间的合作项目,经过协商以后既有选择 JS 也有选择 TS 的。
    ChrisFreeMan
        27
    ChrisFreeMan  
    OP
       13 天前
    @cwcc 我觉得我和你相反,我在想方设法的满足编译器的所有抱怨,对于你来说类型已经是一种负担和多余了。
    vace
        28
    vace  
       13 天前
    在 AI 的加持下,TypeScript 优势明显,生成的代码准确率很高,
    能过编译,就能排除大量手贱的隐性 bug 了,
    平时连写小脚本都是 TS ,再配合 bun 。
    huijiewei
        29
    huijiewei  
       13 天前
    TS 一直用一直爽。就是写库不友好,各种类型体操太难了,写业务爽歪歪
    GenericT
        30
    GenericT  
       13 天前 via Android
    不理解,ts 又没拦着你 js ,懒得体操 any 一把梭,想玩花的 unknown ,有啥影响的。
    js 连个补全都出不来,才真的影响开发效率吧。
    ChrisFreeMan
        31
    ChrisFreeMan  
    OP
       13 天前
    @Subilan 也许这种问题只有自己下一个项目完整经历过才有答案,至少对于我来说,热重载的功能已经减少了那种运行时错误的担忧,但是还不太相信自己的习惯能够处理所有那些很蠢的习惯,比如不检查 null 或者 undifined ,以及 switch 穿过( pass throu )的检查。但是很多时候我总感觉我不是在编程,而是被 tsserver 牵着鼻子走的感觉,我在想我是不是困在它的设计思维里面所以它才能预判我的下一步。
    ChrisFreeMan
        32
    ChrisFreeMan  
    OP
       13 天前
    @levelworm 我还是多少有点在意的,你想的比较开,假设人生是一场游戏的话,我还是很在意一些提前通关的人的意见,毕竟能够提前通关或者走捷径的话谁不乐意呢。
    daysv
        33
    daysv  
       13 天前
    @ChrisFreeMan 没那么复杂,就是 ocaml 啦
    GeekGao
        34
    GeekGao  
       13 天前
    翻译过来 "非常适合大型团队,但当我单独工作或与 1-2 位朋友一起工作时,它就会拖慢我的速度"

    有道理啊,用 ts 有明显熵增,js 看不出来,直到多人改代码时…
    ochatokori
        35
    ochatokori  
       13 天前 via Android
    我怎么反过来,上班喜欢用 js ,有屎一起拉,自己项目用 ts 怎么详细怎么来
    levelworm
        36
    levelworm  
       13 天前
    @ChrisFreeMan 关键是未必适合自己。。。
    ericgui
        37
    ericgui  
       13 天前
    现在我都不敢用 js 了,因为不知道里面到底有一坨什么玩意,不敢用
    Donahue
        38
    Donahue  
       13 天前
    我写 python 都喜欢加上 type hint. 跟 typescript 差不多的
    IvanLi127
        39
    IvanLi127  
       13 天前
    我这种记性差的只能用 typescript ,不然过几天没写这项目就看不懂了。
    shampoo
        40
    shampoo  
       13 天前   ❤️ 3
    “每次看 JS 和 TS 互踩就好笑,无非美工互啄,还学人家程序员讨论编程呢。笑死。”
    netabare
        41
    netabare  
       13 天前 via iPhone   ❤️ 1
    会抱怨 typescript 的语法的人,大概是不太能真正欣赏 lisp 的闪光点的。
    LeeReamond
        42
    LeeReamond  
       13 天前   ❤️ 1
    1. Python 的 typehints 在涉及中参考了 ts 已有的成功设计,现在已经广泛普及
    2. 在 typehints 普及后,Flask 维护者曾抱怨 python 曾经的无类型时代是个很好的时代,它符合动态类型语言设计的简化繁杂操作的初衷。
    3. 个人感觉总体上还是应该支持类型标注的,相当于一种内嵌式的结构化注释,在关键节点添加类型极大增加维护效率。
    4. 但是如果严格遵照编译器命令操作动态类型语言,比如为了让编译器通过形参而特意加了个泛型之类的。。。无疑是极大增加中小项目的复杂度了,且意义不大。
    msg7086
        43
    msg7086  
       13 天前   ❤️ 2
    本质上来说,这是看你是喜欢静态类型语言还是动态类型语言的问题。
    如果你喜欢静态语言,那你是巴不得把 JS 和 Python 都写成静态语言的样子。
    反过来如果你喜欢动态语言,那你巴不得把 C++和 Java 都写成动态语言的样子。

    我个人项目是写 Ruby 的,公司是写 Java 的。公司的项目因为很多开发包袱导致大家不愿意去写准确详细的测试,虽然代码都是静态类型的,依然 bug 频发。自己的项目虽然是动态类型的,但是 Ruby 写测试写起来更简单,覆盖可以更好,更方便我做 BDD ,写完的代码在足量的测试覆盖下 bug 反而更少。归根结底是静态还是动态类型并不是决定代码质量的根本因素。
    holulu
        44
    holulu  
       13 天前   ❤️ 1
    感觉个人开发者用 JS 的成本也不低,用 TS 就更高了。
    facebook47
        45
    facebook47  
       13 天前 via Android
    都个人独立开发了,相当于全干了,还用 TS 完全就是脱裤子放屁💨
    Selenium39
        46
    Selenium39  
       12 天前 via iPhone
    公司项目 ts ,个人项目 js
    acthtml
        47
    acthtml  
       12 天前
    我两个都用,两个都好用。

    用 ts 的时候注释少点,代码多点; js 的话反过来。

    有些没写 unittest 的项目,我倾向于 ts ,这样会保证质量的下限。
    jixiaopeng
        48
    jixiaopeng  
       12 天前
    我觉得适合自己就好,我最近在开源 web 全栈、app 、小程序的项目,力图解决一些问题,用的就是 js ,也有老师建议我用 ts ,我也会去尝试。
    Carseason
        49
    Carseason  
       12 天前
    用了 ts 后不可能再用回 js 的。
    老旧的 js 项目我宁愿重新用 ts 重写也不会用 js 继续弄
    charlie21
        50
    charlie21  
       12 天前 via Android
    穷人说,鱼翅不好吃。
    loolac
        51
    loolac  
       12 天前
    为了写代码有自动提示,还是选 ts, js 如果想要完整提示,就要写注释来声明类型, 感觉还是不如 ts 简洁的。
    coderzhangsan
        52
    coderzhangsan  
       12 天前
    独立开发,不要纠结语言的框框,什么业务什么场景用什么才具有较高性价比才是首要考虑。
    gongquanlin
        53
    gongquanlin  
       12 天前
    js 就像 php ,写起来非常爽,怎么写怎么有;真到 debug/修改逻辑的时候,这个函数的对象不知道有哪些属性,那个方法不知道返回值是啥类型哪些属性就捉急了

    typescript 结合了 js 和强类型语言的优势,语法糖兼容 js 又能完美的定义类型。开发的时候麻烦点,调试升级爽的一批
    musi
        54
    musi  
       12 天前 via iPhone
    @gongquanlin #53 别吹了,运行时还是 js ,而且前端好多数据结构依赖接口,你还是不知道接口给你返回了什么类型。
    wusheng0
        55
    wusheng0  
       12 天前 via Android
    回退 JS 那些一般是基于现实考量,所谓的 tradeoff ,有些人却把这个当成不用 TS 、JS 好用的借口。

    另外一些就是项目不规范,没有约束,到处 any 或者乱写类型。这些本质上是项目管理问题,也被拿来论证 TS 不好用。

    前端门槛已经足够低了,唉,有感而发
    gongquanlin
        56
    gongquanlin  
       12 天前
    @musi 一直强调开发时开发时你还整个运行时,你咋不说编译成二进制跑 v8 里更看不出来了呢

    前端数据结构依赖接口,接口谁给的?不知道接口返回啥还是因为没用 ts ,没规定好数据类型啊,活该不知道返回了啥

    也不知道你喷的啥🤣你的回答堵了你自己的嘴🤣
    musi
        57
    musi  
       12 天前 via iPhone
    @gongquanlin 哥,独立开发,独立开发,不是团队开发
    musi
        58
    musi  
       12 天前 via iPhone
    @gongquanlin #56 定义好数据结构你就一定能保证接口是对的了?那岂不是定义好数据结构就没有任何 bug 了?前端的 debug 你不跑在浏览器里面你咋知道渲染的对不对?还开发时
    musi
        59
    musi  
       12 天前 via iPhone
    @gongquanlin 说了这么多我想问一下你用 ts 独立开发的产品维护了多久?有多少用户?期间经历了几次升级重构?
    gongquanlin
        60
    gongquanlin  
       12 天前
    @musi #58 你这是纯刚了🤣

    1.不论是独立开发还是团队开发,开发不定义数据结构?不对接口?好,前后端分离写,是不是得对接口,接口难道写一遍就完事,不关心字段吗,写 rpc 不关系字段吗?那接口咋写的;前后端不分离,不分离也得关心字段啊,难不成每次更新维护现去翻一遍代码?真要是这样那可能 js 确实更适合你

    2.定义数据结构和没有 bug 有啥关系 ? bug 是业务逻辑出的错,字段结构定义好了不能保证不出 bug ,只能保证减少出 bug 的可能性,这点道理都不明白吗还要我教给你🤣

    3.我也没说前端只有浏览器啊,bs ,cs 架构都是一样的道理啊。好,只考虑浏览器,devtools 是在浏览器里,你不定义数据结构,出了问题我问你咋调试?现翻一遍代码滤出来返回值的所有属性在调试吗,哈哈哈,还跟我争辩运行时呢
    gongquanlin
        61
    gongquanlin  
       12 天前
    @musi #59
    只算 ts ,b 端项目 3 个,这三个开发了 3 年,盈利 80w+了,可以不?够论证不?
    算上 c 端的更是多了去了

    多写点代码少刷点 v2 吧,能说出这种观点还是代码写的少
    liximomo
        62
    liximomo  
       12 天前
    @kneo 你要明白今天的你和一个月后的你实际上是两个人,所以除非是一次性的代码,没有阅读和维护需求,应该总是使用 ts 。
    liximomo
        63
    liximomo  
       12 天前   ❤️ 2
    很多人说一直在强调独立开发,认为独立代表没有别人需要阅读自己的代码,所以就不需要考虑可阅读性和维护性。但是现在的你,一个月后的你,一年后的其实是不同的人,这就像现在的我根本看不懂大学时自己解过得数学题一样。
    musi
        64
    musi  
       12 天前
    @gongquanlin 81 大佬,敢问你这项目前期是怎么找到客户的,其实我的观点是大部分独立开发前期找不到客户就死了,根本不会存在几个月后一年后维护代码的情况,所以在大部分情况下前期的技术远没有项目验证重要
    luozic
        65
    luozic  
       12 天前
    项目大小,需要维护的时间,是否人员稳定,
    项目足够大,
    维护时间跨度长,

    人员三天两头变化,还不用 typescript 等,我看你是想 bug 多点好折腾一下自己的脑神经
    luozic
        66
    luozic  
       12 天前
    更何况现在 AI 各种工具辅助之后,那堆基础非业务逻辑代码大部分你确定是人手搓的?
    musi
        67
    musi  
       12 天前   ❤️ 2
    @gongquanlin #61 就比如我现在有个点子,做个笔记类的应用(同类产品 obsidian 很出色,验证了商业可行性),我前期拿 js 糊完了所有 mvp 代码(尽管技术上不完美,甚至可以说代码就是一团 shit ,只保证核心功能可用)但这不妨碍我验证我项目的可行性。如果拿 ts ,去考虑架构考虑后期的升级,确实代码质量上好一点,但是这花费的时间成本要多于拿 js 糊的(有些人一上来学的就是 ts ,拿这可以不考虑,但是有很大一部分人是用 js 过来的),这个时间成本是花在技术上还是项目的商业性验证上?毕竟独立开发要负责的可只不是技术,还有各种的宣发和运营这也会占用大量时间
    gongquanlin
        68
    gongquanlin  
       12 天前   ❤️ 1
    @musi #64
    都是 toB 的项目多一些,客户都是朋友或者之前的客户介绍的。

    前期外包为主,从外包里遇到了合适的领域/项目才开始做产品

    这几个大的项目一开始甲方也不信任我,一点点接他的外包确认我的能力之后才开始做大一点的项目;项目起来之后甲方的朋友和甲方的对手们都会来找我。但是我只做甲方的朋友的项目并且给甲方提成;

    考虑客户来源,是因为你的目标应该都是 toC 的。toC 的项目不好搞,利润也低,竞争压力还大都在内卷,出力不一定讨好

    技术确实不如项目验证重要,毕竟技术服务需求,搞到需求然后快速开发上线验证,再完善细节才好做起来的

    最靠谱的方法还是遇到愿意掏钱、教你业务逻辑、帮你测试的甲方更重要🤣而普通人实现这个方式最简单的办法就是多接外包🤣外包就去各种 q 群,外包群之类的搞就好🤣
    gongquanlin
        69
    gongquanlin  
       12 天前   ❤️ 1
    @musi #67
    因为我的项目是走的项目外包的形式,所以必然能上线,并且只有做好了,少搞 bug ,甲方才会开发二期、三期。所以为了兼容二期开发的速度和一期的速度,只有 ts 最适合我

    并且因为 js 和 ts 都挺熟了, 所以写 ts 和写 js 也没差多少

    关于运营和宣传我不擅长,而且我的项目也不接触这一块;接触这一块的基本上都是 c 端或者产品了。

    只有我某个外包项目做成产品了,甲方自然会靠着他的圈子和人脉帮我宣传从中提成。运营方面他们甲方掏钱了必然也会想尽一切办法去处理,所以我只关注产品质量就可以了
    musi
        70
    musi  
       12 天前 via iPhone
    @gongquanlin #68 之前确实忘记了独立开发还能 tob ,在我的印象中 b 类一般不和个人合作的,有需求也直接找 b 去了。
    确实每个人的状态都不一样,有些人缺客户,有些人不缺客户,不能一概而论。
    kneo
        71
    kneo  
       12 天前 via Android
    @liximomo 不用 @我吧……我是 100% typescript 党。
    但是你也没必要说服别人。大家都不是新手。自己的代码一年以后能不能看得懂,应该不用别人来教。
    gongquanlin
        72
    gongquanlin  
       12 天前   ❤️ 1
    @musi #70
    只要价格低于那些外包公司,有了客户信任,自然有 toB 的客户找你;私企老板都商人,便宜量大管饱的开发团队都愿意用

    而且我开发的项目不止我一个人做,很多我不擅长的地方比如 UI 、APP 都会外包给合适的朋友。我只做核心逻辑和我擅长的东西

    独立开发者 != 全能开发者,有些不擅长的事情得包给别人做。能拿的出产品才是硬道理,一定程度上可以叫“一人公司”
    hugetimors
        73
    hugetimors  
       12 天前 via iPhone
    个人觉得在如果有大模型加持,对于一般的业务来说,TS 是更好的选择。

    个人算是独立开发者,目前写代码已经离不开大模型的帮忙。经常提示大模型基于现有代码进行解读,然后让其给出新功能的代码。实测下来,TS 的项目往往比 python 更容易一次得到正确的答案

    同样一段逻辑的代码,有 type 会附带了更多 context ,大模型能更容易推理出正确的信息,更容易一次就给出可用的代码,出活效率更高。
    Terry166
        74
    Terry166  
       12 天前 via iPhone
    对个人项目来说 TypeScript 对开发速度影响不大,大部分类型可以通过智能提示获取,直接 copy 就行,实在找不到类型就暂时 any 替代,或者 disable type check 。
    不过对于企业项目如果 lint 和 tsc 规则过于严格会影响开发效率,需要时间适应。
    SayHelloHi
        75
    SayHelloHi  
       12 天前   ❤️ 1
    TypeScript 主要是为了自动提示

    前期是 JavaScript 开发产品 流水账式的代码

    挣到钱 才(有点动力:💰的力量)开始用 TypeScript 重构 😄
    magicdawn
        76
    magicdawn  
       12 天前 via Android
    fearless refactoring ,手动跑 pnpm typecheck, 跑完没报错,这次改动就是安全的。
    Xiamu2663
        77
    Xiamu2663  
       12 天前
    个人觉得 Ts 现在激流勇进啊,写 Vue 的时候只用 ts 版本。虽然类型检查很烦人,不过项目二次维护扩展什么的,容易理解的多。
    morgan1freeman
        78
    morgan1freeman  
       12 天前   ❤️ 1
    @ChrisFreeMan #3
    linus 还写了一本书,我写 linux 只是为了好玩,

    你毕业了 找不到工作,还要啃老被骂,青年失业率高,社会环境不友好,35 岁还要被裁
    人家找不到工作,国家有补贴,直接躺平也行,安安心心搞自己的东西,不为别的,就为好玩

    环境不一样 条件不一样 国情不一样 能力不一样,
    大佬是大佬 ,你是你,没有任何参考意义
    morgan1freeman
        79
    morgan1freeman  
       12 天前   ❤️ 1
    @morgan1freeman 对于很多黑客来讲,真的是远超常人的毅力跟能力,人跟人的差距太大了,作为一个普通人我连 API 都背不熟,很多大佬都是随意敲,甚至有几个函数重载都门清,记忆能力,分析能力超群,脑子里面能放好几个上下文的模型,我在那里想明白一个业务逻辑流程,啪,人家一句要喝咖啡么?我半个小时想明白的东西,啪,全没了,大佬说了一句,摩卡谢谢,继续想
    ivvei
        80
    ivvei  
       12 天前 via Android
    当然用 ts 啊,哪有什么额外成本?越来越觉得就不该有动态语言,特别是动态+强类型的组合,简直是脑抽的设计。如果是只管写不管维护的一次性代码,那我用 perl 或者 shell
    lanlanye
        81
    lanlanye  
       12 天前
    独立开发,也就是不考虑大型多人合作的项目,JS 确实有自己的优势,但这个也得看人……你得承认有些开发者的思路就是清晰到不需要类型提示,看到一个变量名就知道它里面有什么,比如你去看 DHH 写 RoR 的视频。
    abc1310054026
        82
    abc1310054026  
       12 天前   ❤️ 1
    我认为混合使用才是合理方案。在看起来像 library ,utils 的代码上用 ts ,在看起来像 UI 的代码上用 js 。
    darkengine
        83
    darkengine  
       12 天前
    @musi 只 TS 来做类型管理,比 JS 多花不了多少时间。除非项目是一锤子买卖,不然没有类型管理的 JS 维护起来就知道有多酸爽了。
    xiaoz
        84
    xiaoz  
       12 天前 via Android   ❤️ 1
    我是独立开发者,做了几个小产品,非专业前端,我不熟悉 TypeScript ,我只管写出来能跑,实现需求,先上线项目,根本不在意是 TS 还是 JS
    chuck1in
        85
    chuck1in  
       12 天前
    很多人写 ts 是为了复杂而复杂。ts 的类型可以写的很复杂,以至于你每天编程 4 小时,其中 3 小时是在推导类型。甚至都不一定看得懂。
    celeron533
        86
    celeron533  
       12 天前
    C#全家桶 Blazor wasm
    狗头
    FightPig
        87
    FightPig  
       12 天前
    我个人写 ruby 多,所以大多都是 js ,ts 用的少。
    Chuckle
        88
    Chuckle  
       12 天前
    以前不喜欢 ts ,但现在用习惯了,ts 真香,类型推导、元数据,太方便了
    ArrayBuffer
        89
    ArrayBuffer  
       12 天前   ❤️ 1
    这个问题本质上是愿不愿意放弃类型安全来换取开发速度
    thinkershare
        90
    thinkershare  
       12 天前
    不管是前端 Web 还是后端的 nodeJS 开发。,基本都是写 TS ,但尽可能避免搞类型体操。
    虽然我自我感觉对 JavaScript 的掌握水平要远高于 TS 的水平。
    james122333
        91
    james122333  
       12 天前 via Android
    给我写我会写 js, 毕竟类型是什么通常看变量命名就知道了 顶多在变量声明时加注解 然后使用检验工具去检查 或者使用时跳转到定义即可 搭配 vi 类编辑器绑定快捷很快 根本就不需要记忆 找对方法很重要 都在乱搞类型系统都帮不到你 本来就要强制写质量好点的代码
    musi
        92
    musi  
       12 天前 via iPhone
    @darkengine #83 在项目初期还没有用户的情况下你怎么知道你开发的产品是不是一锤子买卖呢?
    我要是知道我的项目上线后一定有用户用,一定能赚到钱,那我肯定以可维护性可扩展性作为我项目的首要指标了

    另外还有一点,ts 只能起到辅助作用,代码不是只要强类型就一定可维护,真要这样的话隔壁 java 岂不是不会有屎山项目存在了
    james122333
        93
    james122333  
       12 天前 via Android
    @musi

    这个代码混淆就可以 毕竞 js 透明 或者 wasm 虽然应该是都会被反编译
    XCFOX
        94
    XCFOX  
       12 天前
    TS 写习惯了,现在已经完全离不开 TS 了。
    后端上个 OpenAPI 或者 GraphQL 或者 tRPC ,前端配合 ts 调用起来就很有信心,对接口有完全的掌控。接口有任何修改 TS 都能检查出来。

    现在找轮子的时候,没有 TypeScript Declare 的包直接排除。有的库 tsdoc 写得很详细,tsdoc 直接当文档看。

    写通用库的时候 TS 是必须的,之后调用的时候会很舒服。写业务的时候用 ts 就更舒服了,一般类型都直接能推导出来。
    techstay
        95
    techstay  
       12 天前
    100 行以内的小脚本用 js 没啥问题,超过这个复杂度就应该用 TypeScript 了
    lstz
        96
    lstz  
       12 天前 via Android
    写 js 没关系,不要让我来维 jia 护 sai 就好
    darkengine
        97
    darkengine  
       12 天前
    @musi 上 TS 时间成本高不了多少。代码不是只要强类型就一定可维护,但是对于同一水平的开发者来说,有强类型加持更容易维护,强类型不是容易维护的充分条件。
    levelworm
        98
    levelworm  
       12 天前 via Android
    @morgan1freeman 他当时有点特殊,操作系统都挺贵的,干脆自己写一个。那时候的操作系统不是很复杂。然后就是逐渐迭代了。

    所以得入行早。
    join
        99
    join  
       12 天前
    问你们一个问题,当你们写 js/ts 的时候,跳转到定义的地方怎么才能看到代码的实现? js 好一点,有些库能看到。但 ts 写的库通通看不到,只能看到一堆接口。
    我喜欢 go 语言那种跳转到定义后可以直接阅读代码的实现。但写 js 这块要看代码实现就会非常困扰。
    subframe75361
        100
    subframe75361  
       12 天前   ❤️ 2
    @join "typescript.preferGoToSourceDefinition": true
    1  2  
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   806 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 22:37 · PVG 06:37 · LAX 15:37 · JFK 18:37
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.