你们是怎么学习 typescript 的? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
Kinnikuman
V2EX    程序员

你们是怎么学习 typescript 的?

 
  •   Kinnikuman 12 小时 29 分钟前 3416 次点击

    一直写 Javascript ,能看懂 ts ,但自己不会写。虽然现在大部分代码都是 AI 来写,但是自己如果不会的话,总感觉它写的不规范。尤其是 AI 钻牛角尖出不来时候,可能有经验的开发者一看就让它换个方式就能解决。但是你如果不掌握这项技术,就比较耽误时间。

    我主要是想学习下怎么才能规范的写好 ts ,有没有优秀的小项目来做参考?

    41 条回复    2025-12-08 21:09:59 +08:00
    hervey0424
        1
    hervey0424  
       12 小时 24 分钟前
    当年需要写的时候你就知道怎么写了, 强行去学习几天之后也就忘了
    liaohongxing
        2
    liaohongxing  
       12 小时 23 分钟前
    你要是有强类型语言的经验就好搞了,比如 java 和 golang, 当强类型来写就行了
    Absofknglutely
        3
    Absofknglutely  
       12 小时 22 分钟前
    实操最快, 记忆最深, 个人感觉看项目更看不懂
    momo2789
        4
    momo2789  
       12 小时 17 分钟前
    用 TS 配置好 lint ,加上 @typescript-eslint/recommended ,把现在 js 的项目重写一遍就行了。
    dif
        5
    dif  
       12 小时 16 分钟前
    后端开发,有段时间兼职了前端。反正就先学语法,然后跟着项目实战。当然,不写前端以后又忘了。
    94
        6
    94  
       12 小时 9 分钟前
    同#1 ,你需要写 TS 的时候,开着 lint 自然就会写了。在你没有使用场景的情况下,学了也没有用,很快就会遗忘。

    如果后面遇到一些需要类型体操的时候就说明你用复杂了,非基建的业务逻辑里面基本上不会出现类型体操。
    maichael
        7
    maichael  
       12 小时 5 分钟前
    没太必要看别人项目,遇到语法体操太浪费时间了,自己写就好了,重写以前的代码也行,写个新的也行,多写就熟了。
    pakholeung372
        8
    pakholeung372  
       12 小时 2 分钟前
    优秀的 typescript repo 太多了,如果要看源码的话 tanstack 系列是个好开始,zustand 小而美,几乎所有项目都需要用
    crocoBaby
        9
    crocoBaby  
       12 小时 0 分钟前
    千万不要掉入类型陷阱!不要为了类型而写类型
    PC9528
        10
    PC9528  
       12 小时 0 分钟前
    除非你要写很复杂的类型体操,否则应该不用特意学?
    wakarimasen
        11
    wakarimasen  
       11 小时 56 分钟前 via Android   3
    ts 库开发和业务开发是天差地别。

    做业务开发只要用 AI 生成后端数据的 interface 填进去,享受编辑器提示就完事。

    库开发就得绕进类型体操里面,像 svelte.js 作者好像就受不了了,选择 js 开发然后提供 d.ts
    JingXiao
        12
    JingXiao  
       11 小时 52 分钟前
    不必为了学而学吧,用的时候有意识写就行了,不行嫌烦的时候就 any ,反正都能跑
    Ketteiron
        13
    Ketteiron  
       11 小时 41 分钟前
    typescript 没有规范一说,因为随便一个特定场景都有十几种等价写法。
    如果对 typescript 有兴趣,可以尝试下挑战一下
    https://github.com/type-challenges/type-challenges
    但这样的项目无法真正"教会"如何写 typescript 。
    kakki
        14
    kakki  
       11 小时 38 分钟前
    没有特别的转换过程,因为一开始学的就是静态语言,类型是自然而然就会去考虑的东西.
    怎么写好当然是每写一段让 AI 帮你看一下抛砖引玉.
    catch
        15
    catch  
       11 小时 32 分钟前
    因为大学学过 java 和 c#,所以 ts 直接上手
    buxizhou123
        16
    buxizhou123  
       11 小时 31 分钟前
    跟着 AI 来学最快,做一个应用,不断地精进
    SayHelloHi
        17
    SayHelloHi  
       11 小时 17 分钟前
    TS 类型编程 长时间不写就忘记

    现在有啥关于类型的警告 直接问 AI
    gahanglin750
        18
    gahanglin750  
       11 小时 14 分钟前
    之前看了神光的小册还可以,不过看完就忘了,因为平时没有运用的很深入,业务写复杂的类型体操很费时间吧
    Torpedo
        19
    Torpedo  
       11 小时 14 分钟前
    1. 学习的时候,尽量不要写 any
    2. 学会泛型
    3. 尝试给一些动态的接口实现智能提示
    4. 稍微刷一下 https://github.com/type-challenges/type-challenges
    Wxh16144
        20
    Wxh16144  
       11 小时 1 分钟前
    TS 类型业务代码常用的应该就 interface 以及交叉/联合类型,偶尔用用内置的几方法 Pick Omit , 然后就会发现这些方法不够用了,自然而然就上去了。

    真要看优秀小项目,那就推荐 zustand 和 redux 这几个 library 的 TS 方案 (可以构建后看 JS 版本和 TS 版本的差距)

    保证你一看一个不吱声,特别是 redux 那几个周边库
    paynezhuang
        21
    paynezhuang  
       10 小时 57 分钟前
    没有系统性学过,实操中成长。

    看 ts 项目,不懂就 AI 指导下
    poly1911
        22
    poly1911  
       10 小时 35 分钟前
    没系统学过,工作是够用,很多复杂的类型体操也写不出来,
    chenalex
        23
    chenalex  
       10 小时 22 分钟前
    之前我是类型体操选手, type-challenges 大部分的题我都可以一遍过
    但是 这个体操你日常业务是接触不到的, 会慢慢生疏忘记, 而且 ts 有许多特定的, 古怪的, 需要你强行记忆的规则
    anyscript
        24
    anyscript  
       10 小时 18 分钟前
    会定义类型就行,说实话那些复杂的类型体操除了那些基础库会用到,写写业务哪用得到,难写可读性还差.
    damila
        25
    damila  
       9 小时 19 分钟前
    赞同楼上的观点,常规业务不需要用到类型体操,看看文档就会写了。实际上有了 ai 之后,ts 完全不用特意去学,看看代码就会了(当然面试除外)
    livib
        26
    livib  
       8 小时 37 分钟前
    能看懂基本就够了,你又不会真的去写
    bbbblue
        27
    bbbblue  
       8 小时 23 分钟前
    没学。。。
    就边写边查 ai 写的问 ai 啥意思。。。
    andyskaura
        28
    andyskaura  
       7 小时 16 分钟前
    像 java 一样写就行。
    AV1
        29
    AV1  
       7 小时 7 分钟前
    @wakarimasen
    svelte 是因为不想编译,改用 jsdoc ,跟类型体操关系不大,jsdoc 也可以类型体操。
    craftsmanship
        30
    craftsmanship  
       7 小时 7 分钟前 via Android
    问 AI 就完了 先进的模型大概率比你写得又快又好
    jchnxu
        31
    jchnxu  
       6 小时 31 分钟前
    @Wxh16144 歪个楼,我一直感觉 union & intersection 我理解的很不到位,经常瞎用
    xiaohanyu
        32
    xiaohanyu  
       5 小时 59 分钟前
    写开源项目,复杂类型推导不懂的话就问 AI
    lete
        33
    lete  
       5 小时 37 分钟前
    好问题,我居然一时半会想不到我是怎么会写的[笑哭]

    可能当年有学习过强类型语言吧 java ,c#。我记得当时简单的在 b 站上看了点基础视频(简单过一遍)之后在写的时候刻意的去用 ts 写代码,一开始不懂的时候直接用 any ,后来写多了,慢慢就悟了。然后今年又学了 rust ,感觉还好(个人觉得 rust 也不像网上说的那么难学吧,感觉和其他强语言类型差不多,甚至根据更轻松一些,也许是自己的知识储备还可以?)

    我觉得最重要的还是多写多做吧,哪怕是造轮子
    sincw
        34
    sincw  
       5 小时 31 分钟前
    先学得 java,后面再学 js,写 TS 的时候直接一看就上手了
    DICK23
        35
    DICK23  
       5 小时 18 分钟前
    虽然不想重复,但还是得说,像 java 一样写就行了,另外大部分场景下用不到类型体操
    COOOOOOde
        36
    COOOOOOde  
       5 小时 11 分钟前
    别人写 ts,就是棒就是好. 我写也行但要让我用 any, 不然太累了
    connection
        37
    connection  
       2 小时 24 分钟前
    typescript handbook + what's new
    类型魔法就得看各种 issue + 各种类库 补充了。
    CLMan
        38
    CLMan  
       1 小时 47 分钟前
    我是在有前后端编程语言经验后,再接触的 TS 。用 TS 是因为有自己的开源项目需求,编程语言本质上是工程工具,用进废退。
    我入门编程语言比较喜欢从 tutorial/tour 入手,我选择的是官方 handbook ,跳过自己觉得复杂或者无用的章节或内容,如 Narrowing 。
    然后实际上手项目,感觉写起来真没感受到什么心智负担。使用阶段就是编码->总结->学习( AI ,官网 What's New,Handbook,Google Style Guide,Java Script 自身)的循环。
    我没去尝试类型体操,因为我认为我用不到它,我不需要刻意去了解它。
    ilaipi
        39
    ilaipi  
       1 小时 39 分钟前
    现在有 ai 了,类型都让 ai 来写,不管多复杂,反正都不想看一眼,写个类型这种事情,ai 还是非常擅长的。

    不过面试的时候要是问这个类型相关的概念就直接噶了
    AV1
        40
    AV1  
       1 小时 13 分钟前
    jqtmviyu
        41
    jqtmviyu  
       28 分钟前
    看那些前端库的 ts, 看得脑袋发晕. 有些两行都不放下, 只能丢给 ai 帮 ai 分析.
    就像背完 99 乘法表, 丢上来一元两次方程.
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2999 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 23ms UTC 13:38 PVG 21:38 LAX 05:38 JFK 08:38
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86