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

Svelte 要放弃 ts 了,各位 wyz 们怎么看

  •  
  •   myvin · 2023-11-24 08:54:49 +08:00 · 7873 次点击
    这是一个创建于 396 天前的主题,其中的信息可能已经有所发展或是发生改变。
    43 条回复    2023-11-24 17:57:51 +08:00
    crazyTanuki
        1
    crazyTanuki  
       2023-11-24 08:57:30 +08:00   ❤️ 1
    国内这个技术都找不到工作...
    dengqing
        2
    dengqing  
       2023-11-24 08:58:01 +08:00 via iPhone
    早就放弃了吧
    chenluo0429
        3
    chenluo0429  
       2023-11-24 09:00:19 +08:00 via Android
    三月份的文章,你这网速有点慢啊
    wangtian2020
        4
    wangtian2020  
       2023-11-24 09:02:03 +08:00   ❤️ 2
    只要有正确的编辑器提示,它用的是 jsdoc 还是 typescript 根本无所谓。我用 typescript 也就是馋它的类型提示,动态类型里搞类型安全本来就是脱裤子放屁,java 类型安全想必从来不出错吧?
    weijancc
        5
    weijancc  
       2023-11-24 09:04:54 +08:00   ❤️ 2
    Svelte 作为底层框架不用 ts 很正确, ts 编译后的 js 不可控, 会对性能有损耗
    s5s5
        6
    s5s5  
       2023-11-24 09:13:44 +08:00
    这个文章分析过了 --->>> JSDoc 真能取代 TypeScript ? https://juejin.cn/post/7292437487011856394
    QlanQ
        7
    QlanQ  
       2023-11-24 09:23:57 +08:00   ❤️ 1
    感觉 ts 有点跑偏了,明明只是为了 编辑器有提示,再加上基础的 类型检查,结果要换一种语言,确实不太合适,还不如类似 PHP ,在后续的更新版本加上 返回值,参数类型定义的东西,一步一步来,而不是换一种语言做 转译
    wunonglin
        8
    wunonglin  
       2023-11-24 09:28:54 +08:00   ❤️ 1
    @QlanQ #7 我为的是 ts 编译成 js 期间,对不正确类型进行校验。不仅仅是提示
    FreshOldMan
        9
    FreshOldMan  
       2023-11-24 09:29:07 +08:00   ❤️ 1
    @wangtian2020 #4 这和出错不出错没关系,类型是让项目在多人维护,长期维护的情况下,能更方便的迭代下去,你说你要是做外包的,项目一做一扔,确实 js 可以
    draco95
        10
    draco95  
       2023-11-24 09:35:08 +08:00   ❤️ 3
    不怎么看,说明 ts 已经是项目标配了,毕竟以前是哪个项目用上了 ts 才会上新闻,现在是哪个项目不用 ts 才能上新闻
    dufu1991
        11
    dufu1991  
       2023-11-24 09:36:37 +08:00   ❤️ 1
    我的组件库 https://github.com/any-tdf/stdf 前几天按照 JSDoc 规则增加了 Props 的注释,写组件参数的时候会有类型提示,可选项也直接提示出备选项,开启 checkJs 或者 TypeScript 也会有类型校验。

    感兴趣的可以使用 pnpm create stdf 创建个工程试试。

    代码反正都要写注释,这样既省略了 TypeScript 编译开销,又有类型校验和提示,我觉得能满足大多数场景了。
    emSaVya
        12
    emSaVya  
       2023-11-24 09:37:26 +08:00   ❤️ 1
    @wangtian2020 类型安全强调的是编译器检查 跟出不出错有什么关系?
    myvin
        13
    myvin  
    OP
       2023-11-24 09:44:22 +08:00
    @chenluo0429 村里通网无所谓,只是看这个问题哈
    Huelse
        14
    Huelse  
       2023-11-24 09:52:09 +08:00
    @weijancc ??? 为什么 ts 编译后的 js 不可控?会有性能损耗? ts 不是编译时类型检查吗?编译后不都是类型擦除了?
    Sfilata
        15
    Sfilata  
       2023-11-24 09:55:36 +08:00
    我觉得爱咋写咋写,之前没有 typescript 的时候大家开发也还不是照样做。到后面大不了维护一个 @types/Svelte 罢了,至于里面封装好就行了。
    zed1018
        16
    zed1018  
       2023-11-24 09:57:45 +08:00
    娱乐圈就是这样,它好的时候哪里都好完美无瑕,它不好的时候就罪大恶极吃枣药丸
    weijancc
        17
    weijancc  
       2023-11-24 10:03:44 +08:00
    @Huelse 比如继承类之间循环引用, 就会大幅下降性能
    visper
        18
    visper  
       2023-11-24 10:07:29 +08:00
    我觉得使用 typescript 最简单的类型标注一下就能得到 80%的好处了。但是想得到后面那一点点,反而走向了极端把写类型的复杂度增加了几倍。一个好几行代码复杂的类型比看一百行程序逻辑还复杂。动不动类型标注比代码还要多好多。
    cwliang
        19
    cwliang  
       2023-11-24 10:08:09 +08:00
    前端框架太多了,svelte 没啥存在感
    minglanyu
        20
    minglanyu  
       2023-11-24 10:15:17 +08:00
    说实话大多数 CRUD 的业务场景,还不需要通过 svelte 这种去运行时框架来优化性能。
    大多数场景对于 react 和 vue 这种自带 runtime 的框架来说,带不带 runtime 其实差别不大,况且框架 react 和 vue 的生态相对更加健全。
    拉回正题。ts 这个东西,当作工具使用吧,不要被工具太过于束缚了。
    Jaeger
        21
    Jaeger  
       2023-11-24 10:26:44 +08:00
    Svelte 这么好用,为啥国内没啥人用呢?
    Orangeee
        22
    Orangeee  
       2023-11-24 10:38:43 +08:00
    @Jaeger 生态和其他成熟框架比太一般,Vue 能干并且能干好的事,一般开发者没理由选 Svelte ,Vue 对大部分业务场景有开源案例支持,毕竟公司需要的是高效稳定开发迭代产品,不是怎么优雅编码。
    Torpedo
        23
    Torpedo  
       2023-11-24 10:50:58 +08:00
    @weijancc #5 额,这年头还有哪个框架不会被编译么?基本都会过一层 babel 之类的转义的
    justfindu
        24
    justfindu  
       2023-11-24 10:51:40 +08:00
    @crazyTanuki #1 别急 再等等, 马上鸿蒙 APP 全都是 TS. 哈哈哈哈
    xuhai951753
        25
    xuhai951753  
       2023-11-24 10:52:57 +08:00
    戏太多
    Leviathann
        26
    Leviathann  
       2023-11-24 10:59:16 +08:00
    who use it?
    不过话说回来 react 也不是 ts 写的,而是 ts 主动去适配
    huruihhh
        27
    huruihhh  
       2023-11-24 11:05:52 +08:00   ❤️ 1
    😓 能不能别用缩写了。wyz 是什么意思
    xieren58
        28
    xieren58  
       2023-11-24 11:15:03 +08:00   ❤️ 2
    早换 solidjs 了...
    sx931210
        29
    sx931210  
       2023-11-24 11:16:04 +08:00
    前端事太多
    dufu1991
        30
    dufu1991  
       2023-11-24 11:26:53 +08:00
    @Jaeger 生态薄弱,所以一起丰富生态吧,可以参与我的开源项目。
    realJamespond
        31
    realJamespond  
       2023-11-24 11:40:49 +08:00
    不如 solidjs ,和 react 写法相似,至少容易让人接受
    shyangs
        32
    shyangs  
       2023-11-24 11:49:36 +08:00
    @huruihhh

    wyz = 烏鴉嘴.

    Svelte 要放棄 TypeScript 了,各位烏鴉嘴們怎麼看.
    sleepm
        33
    sleepm  
       2023-11-24 12:15:26 +08:00
    @shyangs 吴彦祖 [捂脸]
    a132811
        34
    a132811  
       2023-11-24 12:37:41 +08:00   ❤️ 1
    只是作者的个人喜好。

    并不是真的完全放弃,依然要用 SvelteKit 生成 types 。
    上次看到新闻还是大约半年前,现在官方的源码依然需要 tsconfig.json 。

    工具而已,不要上升到派系之争。
    但是,当需要类型的场合,依然是 ts 最强大。jsdoc 不能替代 ts ,它本身类型推导能力很有限。

    我觉得 ts 的问题最大的问题不是它复杂,而是许多基础的 npm 包像 jest 到现在对 ts 支持都不完善,从上层到到低层的改造成本很大,有的时候不用 ts 还更简单。deno 下的 ts 体验倒很好,可惜生态不好
    zhwithsweet
        35
    zhwithsweet  
       2023-11-24 12:40:43 +08:00
    无所谓,反正前端没岗位,爱用啥用啥。
    crazyTanuki
        36
    crazyTanuki  
       2023-11-24 14:31:15 +08:00
    @justfindu 除非政策出一波补贴,类似新能源那种,否则不太看好
    lambdaq
        37
    lambdaq  
       2023-11-24 14:45:37 +08:00
    非常支持 @QlanQ 老兄的观点

    其实大多数人只想调库的时候 IDE 提示如何传参,强类型可以充分做到这一点,但不是必要条件。
    pengdahan4
        38
    pengdahan4  
       2023-11-24 15:10:16 +08:00
    人家是因为团队都是高质量开发技术人才,可以不需要 ts 来约束,替换 jsDoc 就可以保证项目的健壮性。国内的公司开发水平参差不齐,ts 约束可以延长屎山形成的时间
    libook
        39
    libook  
       2023-11-24 15:24:12 +08:00   ❤️ 1
    不影响大家选择适合自己的方案,只是对于同样在使用 TS 的过程中遇到新痛点的人来说,不用可能也是一种可以尝试的选择。

    JSDoc/ESDoc 用过很长时间,如果团队里有成熟的编码规范和可靠的实施的话,结合代码分析能力强的 IDE ,是完全可以替代 TS 的,这也是为什么很长时间里我对 TS 不感冒。

    我举个例子,并不是所有用到 JS 的场景都是在浏览器和 Node.js 上跑的,一些场景下 JS 被用于作为一些其他软件的嵌入语言(类似于 Lua ),甚至有些需要在专用的界面输入 JS 脚本,此时 TS 的编译层可能就会成为使用效率的短板,但利用注释的 JSDoc/ESDoc 不会,因为它们本来就可以被标准的 JS 解释器/引擎正确处理。

    另外就是 JS 本身是个极其灵活的语言,所以它对开发者要求很高,缺乏经验的开发者会有较大概率写出有缺陷的代码,而 TS 就是通过限制语言的灵活性,来帮助开发者降低心智负担,从而提升了工业生产的效率。但万一开发者是个精通 JS 的大佬级人物,将 JS 运用到出神入化了,这时候没准灵活性反而成了高优先级需求。就像一些 C 语言大佬的程序,代码难懂,但也确实比其他现有方案能更好满足功能需求。

    不过说能替代也是说的一部分场景下的,总有些场景下,结合团队和项目情况来综合衡量,TS 可能更适合,这也是 TS 存在并被广泛使用的原因。

    TS 要想取代 JS ,大概率只有普及 TS 原生引擎这一条路可以走;只要没法取代 JS ,就一定只能苟在 JS 技术栈的子集里。换言之本来就是一个技术栈,绝大多数人是两种都会/用/容易上手的,也没必要单立派别啥的。
    journalistFromHK
        40
    journalistFromHK  
       2023-11-24 17:24:20 +08:00 via iPhone
    ts 有违 js 天性 人人得而诛之
    7inFen
        41
    7inFen  
       2023-11-24 17:43:34 +08:00
    ts 不是 js 超集这么简单,应该把 ts 当成一门新语言看待
    evan1024
        42
    evan1024  
       2023-11-24 17:47:55 +08:00
    底层使用也不影响,反正用 ts 不还是要转 js, 技术纯粹也是一个节省精力的选择
    johnnyNg
        43
    johnnyNg  
       2023-11-24 17:57:51 +08:00
    1 、ts 类型和语言融为一体,写起来更符合直觉
    2 、ts 类型能复用,jsdoc 咋复用
    3 、编译问题,你现在用 js 写不是也要编译到低版本
    4 、ts 确实有一些问题,但是希望他能越来越好,而不是淘汰掉
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3042 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 53ms · UTC 13:16 · PVG 21:16 · LAX 05:16 · JFK 08:16
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.