如今es8都出了 ,還有必要用ts嗎?

最近在學ts 總得來說我挺喜歡的。但是覺得和現在的es比起來就多了類型檢查這一項了 ,而且今天用ts寫vue又碰到一個坑。

在mixin裡面混入全局的方法 在組件里不能調用

log 了一下this 裡面明明有mixin里的方法 但是卻會報錯 。

最無語的一點是 ,可以在template 寫mixin里的方法而不會報錯 !

有沒有踩過坑的大神 救救我!!!@尤雨溪


大哥,一個幾萬行代碼的項目下來,產出的tsd文件有幾千行了(各種資料庫orm、webapi輸入輸出聲明、組件參數和狀態),這些是天然的代碼規範、文檔,這些es可給不了你,類型聲明慢慢變成事實規範了,看好es10之前靜態類型納入規範。


emmm...感覺這好像可以拆分成兩個問題呀?

# 關於vue下typescript的使用

如果使用Typescript的話,比起mixin,似乎vue-class-component這樣的方案更合適一些~?也是官網上的文檔推薦的做法。

# 關於Typescript

Typescript最重要的價值就是類型注釋,這真不是「不就是」這種措辭能夠一句話帶過的東西……

對動態類型的語言進行靜態代碼分析應該是一件很扯淡的事情,在不少場景下,動態類型帶來的坑比它帶來的便利性要麻煩多了。

試過不小心把一個返回值為Promise&的函數當成返回值為boolean的函數,作為條件傳進if語句裡面嗎?——調試這種bug時,真的會想死的。

試過使用別的同事封裝的網路訪問函數(比如setxxx這種的)時,沒有返回Promise卻直接返回了一個void嗎?

而Typescript配合編輯器/ide的提示工具,就能在你寫代碼是幫你避免這種愚蠢又致命的bug……


親測可用(還敢不敢題目不好好寫了?)

/*

頭鐵的同學可以試試

vue init ElemeFE/webpack-typescript#develop project-name

不建議初學者體驗,因為施工現場比較危險。

*/


不管ES 6,還是什麼ES 7、ES 8的,我當然還要用TypeScript,只要我寫Angular。

用跟不用,都是相對的,如果只是限制自己的流派,那你就是追尋你合適的技術棧及相匹配的職位;還有一類人,則是反過來看業務開發需要用什麼技術,然後就想辦法去嘗試、了解這個技術。路是自己走的,思維方式決定了自己的路。


ts相當於es + flow。

當js原生支持類型系統的時候或者ts跟不上es的變化時就不需要ts了。


1 ts是靜態類型檢測,而mixin是運行時執行的,檢測不到很正常。

2 template不檢測啥定義不定義的。

有class還用啥mixin啊

react都把mixin幹掉了

直接寫個基類extend啊


文不對題 標題黨嘛。


沒有了


為啥不用?一款語言能夠活到現在,並且活的還不錯,優勢肯定並不僅僅只在彌補另外一種語言的缺陷。TS 本身就不打算走現在 JS 走的路,況且下載 TS 有微軟爸爸站台,你會覺得他沒有社區?

感覺,關鍵點在於,可能你真的還沒寫熟~

不過,如果你覺得 ES8 比較靠譜,你也可以選擇。反正到後面,你會覺得語言還好,最重要的是語言下面包含的技術,真的是炒雞多。。。

現在的 WebAssembly 你會說他只是 JS?

現在的 Service Worker 你會認為它只有 JS?

甚至是 Docker ?

這些都是語言甚至超出語言裡面,你所需要了解和學習的。


等你接手一個代碼量巨大的項目的時候,你會發現,js根本無法維護。ts才可以。


typescript 最好先編譯成 es6 (es2015+)

ecmascript目前為止無類型計劃 typescript 具有類型限制 可以解決團隊協作問題 比如公司類庫


謝邀 ,這個問題勉強能答一發。

目前項目比較複雜,大約八萬多行js代碼,大小兩百個組件,功能逐步迭代,。

決定要上靜態類型,敲定flow,一陣小失望。不過應該等到十一之後才會組織學習實踐,說不定到時候覺得ts好 ,又上 ts 呢 。

大學時搞過兩年c#,唯美,優雅 ,畢業半年,偶爾聽到c# 或者 .net 一陣親切。

ts作為es的超集,吸收了c#等強類型語言的優點 。

1. 強類型。 加入靜類型檢查,在編譯時就能發現潛在bug,也能大幅度提供開發效率。

2 介面 ts的介面對於flow是獨有的,面向介面編程的風格為程序提供一種約束。

3 能夠導出.d.ts聲明文件,提供開發時智能提示,這對於提高開發效率是莫大的幫助。

4 作為微軟親兒子,ts能得到長期的維護,vs code 也是一款非常優秀的編輯器。

ts非常優秀,不斷升級,有非常大的活躍度。

但是,作為 es的超集,它為es增加的主要功能就是上面一下,如果有錯,歡迎補充。在熟練es8的情況下,學習ts並用於生產環境也不過是一兩天的事,最多一個周。

回歸題目,縱使 es9 問世,也無法撼動 ts 的地位。題主也不比著急,學好es,熟練使用,等到項目需要或者自己有興趣,拉出來學一學直接用就可以了。

溜了溜了,其實要睡了。


請各位大佬 不要介意標題

畢竟寫的不夠吸引人 我怕沒人來!

我個人是十分喜歡ts的 而且 用ts寫vue組件顯得更加整潔優美 很適合我這種處女座的 !

提問的主要內容是下面的問題 下面的問題 下面的問題 !...

重要的事情要說三遍!

這是我的代碼 求大佬看看!


出了那你就試試啊,出了又怎麼樣,es6都還沒普及完畢呢,用來用去也不就是babel編譯成可用的js,ts也是編譯,但有個強類型總比沒有好啊。


推薦閱讀:

v-on 綁定事件時,函數名加括弧和不加括弧有什麼區別?
閱讀vue.js源碼可以從哪幾方面入手?
vue開發的項目,前端寫的.vue文件中的生命周期方法,線上還存在嗎?
jQuery的ajaxSubmit如何實現批量圖片非同步上傳?

TAG:前端開發 | 前端工程師 | 前端框架 | Vuejs |