Language every javascript developer should learn:TypeScript

Поділитися
Вставка
  • Опубліковано 21 сер 2024
  • Follow我的telegram以即時收到更新:t.me/imjamesku
    instagram: / jameskugm
    部落格:tw.jamesku.cc
    効果音 : OtoLogic

КОМЕНТАРІ • 72

  • @chun-lunghuang5530
    @chun-lunghuang5530 2 роки тому +50

    對於大型 project,使用 Typescript 要確保團隊的所有人都擁有一定的水平把 type 定義正確… 至少要懂 generic type 和 function type
    曾經遇過有些 project 用了一堆 any, type union, @ts-ignore,真的是一場惡夢,還不如直接寫 js…
    另外,typescript 搭配 eslint, prettier, jest, … 都需要額外 dependencies 和 configuration,遇過很多次 @types/… 更新後不兼容或是版本衝突的問題… 大型 project 每次更新 dependencies 一定要非常非常小心
    現在很多人都在提倡 Typescript,但建議不要在不了解之前就跟風。每項技術都有他的優缺點,一切都是 trade off

    • @leonode
      @leonode 2 роки тому +1

      学习了

    • @cccgao1680
      @cccgao1680 Рік тому +1

      你是真正的明白人,太多人跟风了,ts要是用不好,维护起来开销大得多。

    • @manyes7577
      @manyes7577 Рік тому +2

      觀念正確 沒有什麼是絕對的好
      都要面臨取捨

    • @jcfawerd
      @jcfawerd Рік тому +1

      真的,見過不少小白用了一堆Any

    • @jasonj3952
      @jasonj3952 Рік тому

      搞笑的是这个TS还是专门为大型项目准备的,中、小项目根本没有必要。

  • @ken-js3xu
    @ken-js3xu 2 роки тому +7

    我覺得TypeScript最有用的是在vscode裹可以用 ctrl+空白鍵 就可以有完整的提示字, 在用library的時候不用一直去看doc, 特別是在用react nextjs就顯得更加有用, 按ctrl+空白鍵就可以看到要什麼props了, 所以根本不會想用javascript.

  • @jak4079
    @jak4079 2 роки тому +9

    其實強型別也是有好有壞,不過typescript未來勢在必行啊

  • @user-qf4lk4hz4n
    @user-qf4lk4hz4n Рік тому +1

    我原本主要都寫後端,也就是C# C++跟JAVA那些,而JS主要是很棒的互動工具,尤其整合一些WC或者框架。
    不過JS的問題常常匪夷所思,TS至少消失了,但是強型別與一些應用,我覺得太過C# 造型,那勢必會遇到很多硬核的缺陷,如果他能更像python就好了。
    當然,有很多時候JS還是好用很多,尤其你的應用不一定非給掛上其他框架,只需要jQuery或WC驅動一些小互動的程式時,過去寫得古老的JS Libary直接用就不錯,至於TS的那個轉換工具,其實還沒做到無痛轉換,所以也是個坑,真的需要看狀況用。

    • @kit00001
      @kit00001 6 місяців тому

      和我一樣都很喜歡python是吧,那pyscript.js完全可以試試呢

  • @wongtszhin
    @wongtszhin 2 роки тому +8

    不敢苟同, 既然都寫了typescript等強類別, 但編譯後不見的更快
    何不直接使用rust或go等wasm, 行得更快
    感覺ts 很雞肋

    • @armaggedomfinal1872
      @armaggedomfinal1872 3 місяці тому

      我用go 寫後端,vueJs(Ts模式)寫前端,定義API時Go設計完struct後,直接貼到前端(兩邊struct& interface語法87%像),對開發速度和減少bug有很大幫助,個人經驗

  • @JkeyKong
    @JkeyKong 2 роки тому +3

    我这样说,如果你对javascript 非常了解了,这其实还需要 typescript 吗?如果再使用 typescript 不是很费时吗?个人开发应该不太需要,团队最好是使用typescript

    • @james-kool
      @james-kool  2 роки тому +9

      我自己的經驗跟感覺是,就算是只有自己一個人在開發,你還是不可能100%記住你所有寫過的code。程式碼一龐大起來,回頭去看很久以前寫的地方,常常就需要重新讀一次,就算是自己寫的。所以TypeScript我覺得還是很有幫助的
      使用typescript我覺得是一開始多投資一點時間,但可以減少未來維護、更新所需的時間,可以減少debug的時間,也可以減少未來要重複使用之前程式碼閱讀所需的effort跟時間,就是先苦後甘的感覺
      不過實際上會多花費多少時間我也不知道,這只能實際測過才知道。

    • @JkeyKong
      @JkeyKong 2 роки тому

      ​@@james-kool ​ 我是没有所谓的,不了解自己写的代码,可能我写的没那么复杂,所以可读性高,如果做游戏的话,复杂性高,也许需要 (也可能framework 是我自己写的+基本 library)
      我只知道我用 PHP 使我可以同时有8个项目的收入,工作时间是用8-10小时,也让我 9年无需回去打工。
      巅峰时期 4天复制系统+修改的,价格 15k 马币 (PHP代码,2016年)

    • @james-kool
      @james-kool  2 роки тому +2

      ​@@JkeyKong 感覺以這樣的個人經驗討論沒什麼意義,我應該沒辦法說服你使用statically typed language比較好,有些東西還是要親自使用後比較有感覺。當然你可能已經使用過statically typed language了才得到這個結論,而就算使用過,每個人看法也不一定一樣,這邊有個討論串就有人在討論這件事了:www.reddit.com/r/javascript/comments/bfsdxl/if_you_dont_use_typescript_tell_me_why/
      裡面討論的內容就涵蓋了兩方的看法了,大概就這樣XD

    • @JkeyKong
      @JkeyKong 2 роки тому +1

      typesctip, vue, python, flutter 使用过了,code 是漂亮,但是就影响赚钱的速度,还蛮纠结的,都38岁人了,也是想为自己铺后入,我8个月学的区块链技术已经可以卖钱了,接下来对游戏开发比较感兴趣,因为想开发元宇宙,不懂行不行,需要多久时间开发,现在也在想是否 react+typescript+游戏+元宇宙(AR+VR)+区块链的结合在一起

    • @soshows
      @soshows 2 роки тому

      典型的技术思维:本末倒置...程式的运行场景多,还是写代码的时候多?一切以运行效率为唯一出发点考量...

  • @SeaRich
    @SeaRich 2 роки тому +4

    除非是很小的项目,不影响未来重构。否则,尽早采用TS。 另外,如果需掌握多种语言,那更是要尽早熟悉TS。不熟悉type , 是很难有发展的。就算是python 也是需要考虑写上type. 如果这个项目的未来并不明朗,写少点code就能跑起来,那就无所谓。

  • @jaredsun7728
    @jaredsun7728 2 роки тому +3

    自从用了TS,真心感觉爽!

  • @kkklilili499
    @kkklilili499 2 роки тому +7

    1. 請問你知道微軟有一篇論文指出 ts 只能抓到大概 15 % 左右的錯誤嗎?如果你本身有用 linter 會更少,但開發效率會降低不知道幾個檔次
    2. 一堆人說使用 ts 讓他們更安心少更多 BUG,真的嗎?現在有哪家公司敢說它們改用 TS 少很多 BUG 的?但是開發效率看幾個有名的 repo 的 commits/release 次數就略知一二了ㄎ
    3. ts 的錯誤訊息跟大便一樣,花了好多好多時間在看大便,真正的 feature 都沒做,換來的是沒有 Completeness and Soundness 的 type XDDDD
    4. libs 的問題影片提過了,所以你要逼任何一個用 js 寫 lib 的人都給我寫一份 ts 嗎XD,ts 使用者真的好棒棒大家都要配合你

    • @kkklilili499
      @kkklilili499 2 роки тому +2

      5. 不知道寫 ts 的是用三大框架哪一種?react 配上 ts 是惡夢中的噩夢 -_-

    • @james-kool
      @james-kool  2 роки тому +4

      1. 不知道,不過單看只能抓15%錯誤我覺得有點太片面了。
      2. 這個問法有點誘導式。每個公司的code都會有bug,沒人敢做這樣的宣稱。但如果typescript只有降低效率的效果,怎麼會這麼多公司使用?
      3. 訊息的確不理想,不過通常查一下是可以解決問題的,看久了也會知道,從後面往前看會比較快找重點
      4. 何來要大家都配合一說?沒人強迫你用
      5. 個人是用react,不覺得是惡夢

    • @kkklilili499
      @kkklilili499 2 роки тому +1

      @@james-kool
      1. 太片面了?你是說微軟自己發的論文片面嗎
      2. 很多公司 or 那些引進 ts 的人做了很多宣傳可以解決很多 bug 阿XDD 事實上有嗎?為什麼敢做這樣的宣稱?只是型別帶給你的幻覺而已,ts 有利有弊,這麼多公司使用不代表它是一個很好的東西,這幾年社群鼓吹用ts=讚,但真的好嗎?還是大家只是在跟風而已?
      3. 所以你查了很多資料讓 ts happy 而不是真正的功能 (而且還不一定真的安全,甚至有時候還要用 workaround 解 ts 的智障型別)
      4. 很多 js 的 repo 被使用者要求寫 type 因為他們 ts project 不能用阿XD

    • @nathanxu92
      @nathanxu92 2 роки тому +7

      TS是趨勢呀
      JS開發dapp的話,誰知道回傳的資料是什麼類型的😆
      光是省去確認數字的類型就省心多了

    • @james-kool
      @james-kool  2 роки тому +5

      @@kkklilili499 1. No 我是說從15%這個數字跳到ts沒有這個幫助這個結論太片面了。要知道15%代表是什麼,前後文是什麼。還有很多其他因素
      2. 什麼公司宣稱,然後後來他們後悔了嗎,或是覺得js比較好嗎?我覺得你有點在立稻草人?
      3. 有遇過那種情況,不過很少見,整體上覺得ts是有幫助的
      4. 使用者本來就可以要求。maintainer也有權力決定要不要實作

  • @user-kt8pw1zt6l
    @user-kt8pw1zt6l 2 роки тому

    原來如此,謝謝。

  • @kelwong116
    @kelwong116 2 роки тому

    謝謝分享!

  • @AlvinYap510
    @AlvinYap510 2 роки тому +4

    剛剛學用Typescript寫React,寫到差不多要吐血 🤣

    • @Maifumei
      @Maifumei Рік тому +1

      ts更适合小项目,大项目还是算了

    • @AlvinYap510
      @AlvinYap510 Рік тому

      @@Maifumei 為何呢?

  • @SunShiNnneEee
    @SunShiNnneEee 8 місяців тому

    從Scala 轉JavaScript 一開始超難受 後來用了typescript 只有讚

  • @silverghost
    @silverghost Рік тому

    Vielen Dank! "用就对了"

  • @user-kt8pw1zt6l
    @user-kt8pw1zt6l 2 роки тому

    太優了

  • @Yueyelongbob
    @Yueyelongbob Рік тому

    非常好,用就对了hhh

  • @user-mq4ki1fr2c
    @user-mq4ki1fr2c Рік тому

    Good~ Thanks~

  • @yk7697
    @yk7697 Рік тому +6

    TypeScript 變麻煩 更難用

  • @soshows
    @soshows 2 роки тому +2

    写代码 重要的不是过程,而是对机器友好高效!技术思维者写出一堆垃圾...

  • @leonode
    @leonode 2 роки тому

    我想想tsc有个watch模式是不是就可以实时看到js的增量效果

    • @jcfawerd
      @jcfawerd Рік тому

      是,但會燒你的 CPU

  • @user-yv7hk7tg2f
    @user-yv7hk7tg2f 2 роки тому +1

    说真的,我很少直接动到原生的js了,使用前端框架例如react都直接用jsx。前后端一体的语言/框架(php,asp.net,springmvc/boot)这些也没必要直接使用js,前端大部分时候只会动到html tag和css...
    虽然知道强类型的好处(性能提升【细化类型让内存占用减少】,编译器实时报错【不用在run的时候才报】),但问题是js虽然很棒【啥领域都能掺一脚】,但真正在网页写js运行的场景也少。用的时候基本都是框架了,但问题是大部分框架也不在编程阶段用原生js了,而且尴尬的是框架也没多少直接支持ts的吧...

    • @jcfawerd
      @jcfawerd Рік тому

      其實我現時用的npm dependencies有99%都已經有 typescript types,四大 library / framework 都 support typescript

    • @user-yv7hk7tg2f
      @user-yv7hk7tg2f Рік тому

      @@jcfawerd 这倒是我孤陋寡闻了😂 我在发这个评论好一两个月后确实发现typescript兼容性意外的好,很多情况下js源码可以无痛转型
      而且敲代码的时候,有时想要查看我自己的jsx文件有什么函数还是功能的,Ctrl错文件很多次(主要还是文件太多,Ctrl省事)。然后每次不小心ctrl到第三方库大部分都是ts

  • @amigochan
    @amigochan 2 роки тому

    在影片 0:52 提到 TypeScript 如果需要先做語法轉換為 JavaScript,我想請問有在使用的工程師網友:
    1. TypeScript 是不是像早期的 C++ 需要先用編譯器轉換為 C,再用 C Compiler 編譯呢?
    2. 承上,這樣會導致無法使用 IDE 除錯原始的 C++ 程式碼,所以後來被 C++ Compiler 取代。你們是如何克服呢?
    3. 請問目前有在發展原生支援 TypeScript 的瀏覽器套件與 JIT 嗎?
    還請各位不吝賜教,謝謝!🙂

    • @james-kool
      @james-kool  2 роки тому +4

      1. 基本上是,雖然現在有些runtime可直接執行ts,但都不是主流,且瀏覽器應該都只支援js
      2. 沒研究細節是怎麼運作的(印象中是用map之類的東西,等大神補充),不過vscode就有支援typescript的intellesense,也有debugger
      不過還是希望早日native支援typescript成為標準~

    • @jcfawerd
      @jcfawerd Рік тому

      2. 可以用 source map 解決

    • @jcfawerd
      @jcfawerd Рік тому

      @@james-kool Javascript 已經有proposal 會為 javascript 引入 types definition,但不會做 type checking,跟 python 現行的 types system 一樣

  • @willywang5253
    @willywang5253 9 місяців тому

    只有我覺得音效很大聲嗎QQ

  • @kuokuo33
    @kuokuo33 Рік тому

    剛學TS的時候很討厭,用了不久就愛不釋手

  • @KnifeLin
    @KnifeLin 2 роки тому +2

    如果只是減少 debug 的難度, 那表示, 只是減少而已, 並非完美解決, 真的要解決, 應該要從專案分工時大家協同工作時, 介接的規格書做起, 這才是完美的方案, 但在台灣有受過這種規格書教育的人, 幾乎都是6 年級生以前的人, 現在的新生代, 幾乎沒有寫這個規格書的人, 我真的覺得累的點是, 現在的分析師或架構師, 真的不太懂重點不在你怎麼規劃 spec, 而是你有沒有寫出 design spec, 很多自以為本課系的高材生連這些 design spec 到底長什麼樣子都沒看過.. 不可思議

  • @happycoding5162
    @happycoding5162 3 роки тому +1

    您好!我們是快樂學程式,致力於推廣工程思維,提升數位能力。
    想與您合作下班後讀書會系列主題,相關內容已在IG私訊您了,麻煩幫我留意下 感謝😊

  • @billchen8113
    @billchen8113 2 роки тому +6

    還是覺得 python 的佛系 typing 比較好用 XD

    • @miniappletheapple
      @miniappletheapple 2 роки тому +1

      python添加靜態型別沒這麼必要,因為python是強型別,很多時候可以讓代碼自己出錯

    • @user-qf4lk4hz4n
      @user-qf4lk4hz4n Рік тому

      python 好用非常多

  • @user-kt8pw1zt6l
    @user-kt8pw1zt6l 2 роки тому

    經果你的解說跟整理,容易理解多了。

  • @Maifumei
    @Maifumei Рік тому

    typescript? NO

  • @syutengu
    @syutengu 2 роки тому +1

    显然如果有型极其重要,原生js就不会无型。既然可有可无,为什么要自寻麻烦,多此一举。原生最高,ts必亡。

  • @jedywei
    @jedywei 2 роки тому +2

    TDD 才是正道。 strong type 並無法保證 功能正確。

    • @KnifeLin
      @KnifeLin 2 роки тому +3

      我實在有點看不太懂為何有人會認為 strong type 是有用的東西, ....也許有一些特點, 但成本太大, 而且將 strong type 和零 bug 綁架了, 真是沒看過世界...

    • @jedywei
      @jedywei 2 роки тому

      @@KnifeLin 完全同意

    • @KnifeLin
      @KnifeLin 2 роки тому +2

      @@jedywei 樓主還說 typescript 未來勢在必行咧, ... 不過就是語言而已, 台語, 國語, 以前也有人說台語就要沒人用了, 現在呢? 只要找到語言能發揮的地方, 都有人會開始用

    • @user-qf4lk4hz4n
      @user-qf4lk4hz4n Рік тому

      真的TDD才是王道。我開發後端經驗,其實強型別的成本是遠遠超過弱型別,學習只是基本成本,真正成本事從設計到維護,你都需要更加注意這些型別的影響。他們是維護的高成本項目。很多時候,好處僅止於剛開始使用時,後面如果客戶有大量變動需求,你的設計都會變得需要額外考量,那並不事個簡單的事情。
      不過TS跟風趨勢應該事難擋,即便很多公司用了以後發現還是Any。

  • @aginlo
    @aginlo 2 роки тому

    現在只會js的 frontend 根本已經不合格了

    • @manyes7577
      @manyes7577 Рік тому

      不然還要會什麼

    • @aginlo
      @aginlo Рік тому +1

      @@manyes7577 至少要會ts 及一種框架