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

你们是怎么学习 typescript 的?

 
  •   Kinnikuman 2 小时 22 分钟前 1536 次点击

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

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

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

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

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

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

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

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

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

    看 ts 项目,不懂就 AI 指导下
    poly1911
        22
    poly1911  
       28 分钟前
    没系统学过,工作是够用,很多复杂的类型体操也写不出来,
    chenalex
        23
    chenalex  
       15 分钟前
    之前我是类型体操选手, type-challenges 大部分的题我都可以一遍过
    但是 这个体操你日常业务是接触不到的, 会慢慢生疏忘记, 而且 ts 有许多特定的, 古怪的, 需要你强行记忆的规则
    anyscript
        24
    anyscript  
       11 分钟前
    会定义类型就行,说实话那些复杂的类型体操除了那些基础库会用到,写写业务哪用得到,难写可读性还差.
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5584 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 21ms UTC 03:31 PVG 11:31 LAX 19:31 JFK 22:31
    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