回覆列表
  • 1 # 小謝人家

    稍微吐槽一下,感覺前端技術有點膨脹了,學起來比後端東西還多而且還雜,野蠻生長,肆意發版本。

    我敢打賭,這東西就是個中間過度東西,前端框架的大魔王(類似springboot這種),絕壁還沒出來[奸笑]。

    趁大家還沒掌握,提前學,到時候錄影片開課收費。。

  • 2 # 勿躁

    ts會一些其他的面向物件程式設計,就可以掌握,但是同樣的道理是不管什麼語言,都需要深入去了解,而不是會用了就完了,沒有了學習程式語言的魅力,ts是js的一個進階,但是其實拓展的方法還是不夠多,沒有其他大類語言那麼完善,需要我們多關注,多支援,

  • 3 # 愛分享Coder

    學習TypeScript是為了使得程式碼質量更高,可讀性更強以及規避一些不必要的錯誤。型別檢查是TypeScript規避錯誤的核心方法之一,而介面是型別檢查的重要技術手段,介面為我們的程式碼定義了契約,使得我們的資料能夠按照契約傳遞,賦值,保證我們程式碼的健壯性。

  • 4 # 那年6月門口的兵

    瞎折騰,從jq到backbone到vue到react再到ts,或者grunt到gulp到webpack,前端只是想走後端的老路而已,折騰這些年不知道造就了多少kpi,還不如老老實實看看基礎,看看演算法,資料結構,軟體設計,瞎折騰框架和庫就是api caller,還有拿著框架擺出一臉優越來的更是如同蒼蠅見屎一樣,呵呵

  • 5 # 路程lucky

    你好,我是工作6年的前端工程師,目前參與的專案技術棧主要是React。我們都知道當前三大前端主流框架React、Vue、Angular,而當前React、Angular的專案已經深度融合TypeScript語言標準化開發。下面我就從React的角度來分析為什麼一定要學習和使用Typescript,這樣我們再結合Vue3類比更深刻的明白TypeScript帶來的巨大優越性

    傳統JavaScript的痛點問題

    1.JavaScript語言的弱型別問題。從web建立之初至今傳統的瀏覽器應用開發最重要的指令碼語言是JavaScript,用來處理網頁、樣式、資料互動等功能。最初JavaScript設計初衷是簡單定義、方便使用,並沒有像Java、C#等高階開發語言擁有強型別定義的特徵。比如定義一個數字 var a=1;在後續的程式如果出現了 a = a + "23";結果a變數變成了字串“123”,這就導致後續我們無法預判a的值到底經過多少轉換,型別又經過了多少變化,很容易出現邏輯錯誤無法排查。

    2.JavaScript不夠友好實現面向物件開發。Java、C#等高階開發語言都是支援面向物件開發模式的,有利於拓展、複用,減少開發量。而JavaScript語言是基於原型鏈,雖然可以有方法模擬實現面向物件,但用法臃腫難用,不利於複雜專案的開發和維護。

    3.傳統JavaScript對外部引用不夠友好,不利於共享和複用。現代化專案都是基於npm包管理,js都經過壓縮編譯,而如果純粹的js沒有說明文件很難使用,不知曉其中的用法和變數。

    TypeScript優勢

    鑑於以上JavaScript語言存在的缺陷,TypeScript語言正是彌補了不足。

    1.TypeScript是強型別語言,能夠定義型別,有效避免邏輯錯誤。在TypeScript程式碼中,定義變數都是需要指明是什麼型別,可以用一個有趣的比方“在TypeScript界,萬物皆有型別”,即使真的是無法確定,也可以設定型別為any。當定義型別為number數字,那這個變數是不可以被變為其他型別的。比如以下例子:定義一個數字的變數。let a:number = 0; a = a+ "23"; JavaScript語言是能夠轉換,而TypeScript是不能轉換的。這樣就能從開發源頭避免資料型別隱性轉換導致的邏輯錯誤問題。

    2.支援面向物件的各種特性,繼承、多型、泛型等。在面嚮物件語言開發中,這些優秀的特性是能夠讓程式健壯、方便擴充套件的基石。TypeScript支援面向物件的定義方式。有效提高開發質量,提高程式碼複用性。

    3.支援ts型別匯出,方便第三方擴充套件和呼叫。這一點,我們可以看各大社群釋出的npm包,其中都是最終會匯出.ts的型別檔案加上編譯的js檔案。這說明,我們用TypeScript語言開發最終可以匯出ts型別和js庫,當其他人需要使用時,可以根據ts型別進行知曉其中的變數、方法情況,非常有利於第三方擴充套件和呼叫。

    TypeScript語言在React專案中的實踐

    專案引用TypeScript語言的通用的核心要點是:

    ts解析庫,package.json引入TypeScript庫檔案,這樣可以執行tsc編譯命令進行型別檢查。建立ts必要的配置檔案tsconfig.json以及可選的ts檢查配置檔案tslint.json配合專案中webpack等工具進行編譯開發。vue3中使用TypeScript

    類比react,在vue3中使用,必然是一樣的道理,你需要引入ts編譯庫,結合配置檔案和webpack執行時環境進行開發動態編譯。

    TypeScript學習路線

    我也是從JavaScript過渡到TypeScript的過來人,我的經驗是先從TypeScript官方的基礎教程開始出發,循序漸進理解TypeScript的各種特性。從簡單的demo出發練練手。後續結合vue實際場景把原先的JavaScript寫法改成TypeScript。這樣逐步就可以過渡到TypeScript的現代化前端開發陣營,更規範工程化開發專案。

    寫在最後

    技術的發展總是充滿共性特徵,為了解決共通難題。前端專案無論是基於React還是基於Vue,透過TypeScript語言面向物件、強型別、方便擴充套件的優勢,能讓我們有效避免JavaScript語言開發存在的缺陷問題,更規範、更標準、更友好的進行前端工程化開發。作為前端我們要保持熱情和好奇心,多探究,多學習,多思考,相信透過我們的努力,為使用者創造更好的使用者體驗產品。

  • 6 # 徐自勉

    學吧,學的程式語言越多,你就發現語言是最沒學習成本的。尤其是後面出來的新語言,基本上都比較好上手,一兩天就基本掌握了,甚至不用學,看一眼就知道怎麼寫,因為都是你抄我我抄你,在概念層面基本大同小異,一通百通。而有學習成本的反而是語言所專注的領域,學java就是學web後端,學spring,學springcloud那一套微服務,以及後端衍生出來的資料庫,快取,mq等等。typescript基本就在前端,學起來就是適應下語法而已,而且typescript基本相容原生的es,不會ts,直接上去幹對著官方文件查下,問題不大。

  • 7 # 歪泥偶巴

    從大學的turbo pascal,到後來的delphi,到c#,只要是Anders Hejlsberg大神的,必須學。

  • 8 # 馬克的日常生活

    linux 都是彙編與c寫的,身為it開發人員是否需要學習彙編與C。 所以這是一個選擇問題.

    你喜歡什麼就學什麼.

  • 9 # DianYingMi

    首先來說TypeScript是為開發大的專案而生的。如果開發一個業務邏輯複雜,模組很多的專案,引入TypeScript可以做到事半功倍。

    Vue, React 和 Angular對TS都有支援,有些不同。谷歌的Angular(2.0+)全面擁抱TS, 直接使用TypeScript語法開發和使用。臉書的React官方提供了TS標頭檔案,並沒有鼓勵使用,是可選項。Vue有點介於兩者,可以不用,但是建議開發大專案使用。

    從我的經驗看,開發類庫建議使用TS, 開發終端應用程式,不需要TS, 但是建議安裝TS以使用設計開發時的錯誤檢查和智慧提示。

  • 10 # 洛海之音

    作為一個前端,是應該學習TypeScript。

    什麼是TypeScript?

    TypeScript是一種由微軟開發的開源、跨平臺的程式語言。它是JavaScript的超集,最終會被編譯為JavaScript程式碼。TypeScript添加了可選的靜態型別系統、很多尚未正式釋出的ECMAScript新特性(如裝飾器)。2012年10月,微軟釋出了首個公開版本的TypeScript,2013年6月19日,在經歷了一個預覽版之後微軟正式釋出了正式版TypeScript。

    JavaScript與TypeScript有什麼區別?

    TypeScript 是 JavaScript 的超集,擴充套件了 JavaScript 的語法,因此現有的 JavaScript 程式碼可與 TypeScript 一起工作無需任何修改,TypeScript 透過型別註解提供編譯時的靜態型別檢查。TypeScript 可處理已有的 JavaScript 程式碼,並只對其中的 TypeScript 程式碼進行編譯。

    為什麼要學習TypeScript?

    使用TypeScript可以降低JavaScript弱語言的脆弱性,可以幫助我們減少資料型別導致的錯誤。

    比如說:

    let name: string = "zhangsan";

    let age: number = 3;

    function addAge( a: number ){

    return a+1;

    }

    當你呼叫函式addAge(name),TypeScript就會丟擲一個錯誤,提示你函式的引數型別必須是數字。但在JavaScript中,編譯的時候就不會報錯,會返回一個字串"zhangsan1",很明顯,我們想要的結果是年齡的一個加數和而不是一個字串。可能我們在JavaScript中,需要很久的時間去找這個問題,而在TypeScript中,一個丟擲的誤輕鬆為你找到了問題所在。

    所以在很多大型前端專案裡,都開始運用TypeScript來建立了,因為它更加規範和方便管理。

    另外,在前端的三大框架中,都開始集成了TypeScript版本,可以說TypeScript是前端的一個發展方向。

    如何學習TypeScript?

    如果你是一個js的新手,不太建議一上來就學習ts,當你能夠熟練地掌握js以後,在js的基礎上,能夠方便和更深入的理解ts。因為ts本身就是在js的基礎上延伸出來的,只是新增了一些理念和型別。

    現在的ts官網上的講解課程都非常的詳細,學起來還是挺方便的。

    現在的前端,也並不像以前那麼簡單了,很多技術都在更新換代,我們也需要不斷的學習和成長,掌握新知識,才能長久立於不敗之地。

  • 11 # 檸檬班軟體測試

    始於JavaScript,歸於JavaScript

    TypeScript 可以編譯出純淨、簡潔的 Javascript 程式碼。並且可以執行在任何現代瀏覽器和 nodejs 環境中。所以不需要考慮用 TypeScript 的相容問題。可以說 TypeScript 完全可以替代 JavaScript。

    強大的工具構建 大型應用程式

    型別推斷依靠高效的開發工具把原有 JavaScript 執行時才發現的問題在編碼或者編譯時提示出錯誤問題。也就是大家常說的適用於構建大型應用的原因。

    先進的 JavaScript

    Typescript 支援不斷更新的 ECMAScript 和未來的提案中的特性,使我們可以適用最簡潔的編碼和高效的開發達到極致。

    最重要的事

    現在框架都在用 Typescript 寫,你不會看不懂人家的原始碼。個人發展就受到了明顯的限制。

  • 12 # 老郵局

    要學!

    Typescript是趨勢,不可逆!

    Vue已經是web開發標配,後端都會用了,你覺得作為前端你還有啥優勢?

    雖然不會ts不影響使用,但很多知名的庫都在用ts重構,比如ant.design,vant等等,我怕以後你搜個資料原始碼都是ts版,只會傳prop,別說改了,看都看不懂,你說尷尬不!

  • 13 # 前端達人

    感謝邀約,你的這個問題提的很好,10月5日凌晨,對於Vue來說是個重要的日子,尤雨溪公佈了 Vue 3 原始碼,這次原始碼最大的亮點就是 98% 以上使用TypeScript 編寫,目前就有一個很現實的問題擺在我們前端開發者的面前,如果你不學習 TypeScript ,Vue 原始碼你就看的很吃力。

    首先我們來了解下什麼是TypeScript

    C#語言的創始人 Anders Hejlsberg 設計了 TypeScript,並於2013年6月19日釋出了其第一個正式版本,它是JavaScript的一個超集,之所以設計這個語言的初衷就是幫助前端開發人員能像後端開發人員那樣利用高階語言的特性進行編寫程式碼。比如可以利用高階語言的這些特點:強型別、面向物件、語法檢查,程式碼編譯等。TypeScript 還有一個最大的特點就是可編譯 ,編譯的好處就是有利於發現錯誤,一發現錯誤就終止編譯,提前幫我們定位問題,編譯通過後,就會將 TypeScript 語言轉換成高質量的原生JavaScript 程式碼。

    經過這幾年的發展,TypeScript 的最新版本是3.X,目前是微軟最有影響力的產品之一,最重要的一點是現在完全免費並且開源。還有一個比較有趣的事情是,連谷歌這樣競爭對手,在其 Angular 的前端框架產品上,也放下成見,從2.0 版本就開始擁抱TypeScript,可見谷歌在這件事情多麼有先見知名,現在 React 、Vue 才意識到使用TypeScript。從目前的情況來看,如果你不學習TypeScript,Angular 框架你就無法使用,在過不了多久,React 、Vue 也不好說會不會強制要求我們使用TypeScript,反正Angular 最早這麼幹了,目前還是主流的前端框架之一。

    然後我們在來分析下 JavaScript 的現狀

    這幾年 JavaScript 可謂發展迅速,可謂全平臺通吃,現流行稱作“大前端”,目前前端不僅能做網站、還能做手機端、WebGL 3D 動畫、VR、後端、遊戲開發、物聯網開發、甚至人工智慧等等,這些網際網路產品的主要形態,幾乎都可以用前端來完成。由於其發展太快,JavaScript 這門語言也在緊跟時代的步伐,並且改名ECMAScript,幾乎每年都會有新版本釋出,目前最新版本應該到10了,就是這樣的發展速度,還是與java 和 c# 這些成熟的高階語言還有很大的距離。由於版本的問題,我們在專案中可能混雜著各版本的指令碼,造成了規範不統一,相容性差的各種問題。

    接下來,我們來回顧下 JavaScript 的常見的場景,由於其實弱語言的特點,不會進行型別檢查,比如 1+“1” 這個問題,有可能是我們人為失誤的原因多寫了雙引號,其結果不會報錯,會正常輸出一個我們不想見到的結果11,這就造成了我們很難發現問題。除此之外,還有莫名其妙的各種undefined問題,也不會影響程式執行,增加了我排查問題的難度。

    因此我們需要一個工具幫我們降低 JavaScript 弱語言的脆弱性,減少由於不正確型別導致錯誤產生的風險和各種版本混雜造成錯誤的風險等等。TypeScript 的出現正好解決了我們的這類問題。

    接下來具體分析下 TypeScript 的特點和優勢

    1、入門容易,前端開發者很容易上手

    TypeScript 從表面上看來就和普通的 JavaScript 程式碼差不多,無非就是把高階語言的強型別這個最主要的特徵引入JavaScript,就好像為 JavaScript 上了一把高階語言強型別的鎖,避免這類問題的產生,由此不得不佩服微軟的良苦用心,就是為了讓我們前端開發者更好的更快的學習TypeScript。我們先來看段程式碼,理解下強型別的特徵,如下程式碼所示:

    你可能認為這段程式碼很平常,如果你這樣呼叫 increaseAge(cat),TypeScript 編譯器就會報出錯誤,提示你increaseAge這個函式的引數必須是數字。如果是原生 JavaScript 不但不報錯,還會正常的返回結果,這就大大增加了我們開發過程中潛在的風險及排查錯誤的時間成本。這也許就是TypeScript 的魅力所在,提前幫我們發現程式碼出現錯的風險。

    2、按需編譯成我們指定的 JavaScript 版本

    在上面分析 JavaScript 的現狀時,我們提及到 JavaScript 版本幾乎每年都會有新的版本,如果你要寫出相容性比較高的指令碼,對於我們前端開發者來說是一個很大的挑戰,你不能保證每個人都使用let,或者超前使用最新語法特性等。TypeScript 卻很好的解決了此問題,你可以按需輸出你需要的指令碼,比如 ECMAScript 3、ECMAScript 5 、ECMAScript 6 。同時 TypeScript 還與時俱進,緊跟 JavaScript 的新特性,這就意味你可以使用這些新特性進行編寫,無需考慮其是否相容,相容的事情都交給 JavaScript 編譯器吧。

    3、程式碼規範標準,有利於團隊協作開發

    現在的網際網路產品越來越複雜,形態又多,各終終端,一個產品不可能只有一個前端進行開發,現在前端開發也是團隊的開發模式,剛才提及到 JavaScript 本身的特點還有其發展太快,這就會造成每個人寫程式碼的隨意性就會很大,你當然可以為團隊引入 eslint 這些外掛進行程式碼質量檢查,但是你要整理出這些規範來估計要花費不少的時間。與其花時間在這上面,還不如在TypeScript 的基礎上,結合 TypeScript 的特點做一套標準即可來應對 JavaScript 版本不斷更新的特點。

    最後給前端初學者的一些建議

    如果你是 JavaScript 的新手,我不建議你一上來就學習 TypeScript,等你有了一定的基礎,對前端的概念和邏輯有一定的認知後,再學 TypeScript 也不晚,並且學習起來更快 ,這樣你就會寫出更健壯的 TypeScript。TypeScript 這個工具的設計初衷並不是為了吸引更多的人學習前端,而是為了讓具有一定基礎的前端開發者編能像其他高階語言開發者一樣編寫出質量更高的健壯性的程式碼。

    小節

    今天的內容就分享到這裡,不知道我的這些觀點是否能說服你去學習 TypeScript 。還有一個原因我漏掉了,我在這裡補充下,你會發現目前端崗位的招聘需求裡有的公司都明確要求熟練掌握TypeScript啦 ,學習TypeScript本身並不難。它像JavaScript一樣編寫和執行,只是增加一些新的理念和語法糖,我們學起來也會更加順手,加油吧,現在開始學習 TypeScript 並不晚。

  • 14 # HondryTravis

    我覺得不應該糾結到底學不學,而是TS是開發中大型專案必須的,因為每個人寫的風格都不一樣,但是透過TS可以強約束我們寫出可擴充套件,可插拔健壯的程式碼邏輯,同時加深自己的嚴謹性。根據自己的需要判定,本來TS也不是多麼難學的一個東西(當然只是用來寫專案,並不是去研究這門語言,除非你自己寫個直譯器)

  • 15 # Web前端進階指南

    謝謝邀請。Vue3.0原始碼開放了!先向我們偉大的程式設計師致敬一波,辛苦啦!隨著尤小右釋出的動態,我也是激動了一波,雖然目前公佈的alpha版本,但主要的架構改進、最佳化和新功能都已經完成,剩下的主要就是完成一些Vue2.0現有功能的移植,這是尤小右釋出的動態,還得我嘚瑟了一波。好了話不多說,動起來:

    在前端進階的路上,TypeScript真的是必不可少的,也是極為重要的,真正的吃香,很得寵,目前前端框架Angular、Vue、React已全部支援TypeScript。你要去熟知,熟練,肯定會為你找工作新增很多機會。

    TypeScript

    TypeScript是JavaScript的一個超集,支援ECMAScript 6 標準,有由微軟開發的自由和開源的程式語言,其設計目標是開發大型應用,它可以編譯純JavaScript,編譯出來的JavaScript可以執行在任何瀏覽器上。

    前端標配Vue

    作為一名標準的前端開發人員,掌握並熟練Vue的使用已經是一個標配了,那麼從這一方面來看,如果你想熟練並精通Vue框架,就必須從原始碼入手,就像你想成為一駭客,就必須瞭解Windows系統後臺原始碼一樣,想當初也是,想精通js,那麼你必須的熟練js原始碼一樣,知道了它怎麼執行,什麼原理,你才可以去用它,給你自己加砝碼。如今Vue3.0出來了,使用TypeScript編寫,你說能不學習嗎?往後會更火,上GitHub你就能看見有多少星星了。

    TypeScript特點

    1、提高程式碼質量

    一段程式碼好不好,就要看它的可維護性、健壯性、簡潔而不簡單,TypeScript能從這些方面提高程式碼的質量,不為別的,如果你做過大專案,後期對於長期迭代的專案、開發和維護的成員會很多,每個人獨有每個人的風格,流動性也很大,程式碼質量過關就可以避免一些問題,我們公司就使用jshint統一規範,不能透過不能上線。

    而TS就可以為我們幫助規避這些問題,從而提高程式碼的質量。

    2、對面向思想進行了加強

    維基百科對OOP的定義是:是種具有物件概念的程式程式設計典範,同時也是一種程式開發的抽象方針,它可能包含資料、屬性、程式碼與方法,物件則指的是類的例項。它將物件最為程式的基本單元,將程式與資料封裝在其中,以提高軟體的重用性、靈活性與擴充套件性。物件裡的程式可以訪問經常修改物價相開外的資料。

    介面:

    當我們設計程式的時候,基類中的所有方法都不用去實現,就可以使用介面來實現,提高延展性。

    泛型:

    泛型可以用來建立可重用的元件,一個元件可以支援做種類型的介面,這樣使用者就可以透過用自己的資料來使用元件。這樣一來就可以最大限度的重用程式碼,保護型別的安全。降低了強制轉化操作的成本與風險。

    TypeScript發展前景

    你看了上面幾張圖以後發現,他們都有在用TypeScript,真的是這樣,基於TS開發的專案越來越多,因為在Web應用變複雜的同時,js慢慢的透露出一些問題,效能不能滿足一切場合的需要,語法太靈活導致在大專案中bug接踵而至。

    但是TypeScript透過為js加入靜態型別檢查改進js的鬆散語法,提神程式碼的健壯性,對於效能問題,有GOOGle、MICOSof、Mozilla、Apple等幾家公司合作發起一個關於面向Web的通用二進位制和文字格式的專案——webAssetmbly。大家又興趣的可以去了解一下。我就不多所,我也不瞭解哈。

    總結

    說這麼多,也不如去嘗試一下,有中文文件,而且也很完善,跟著上手操作一波,也很簡單,反正適用於js程式設計師學習,小白們可以去適當瞭解學習一下,發展前景還是相當可觀的。

  • 16 # 西瓜大學畢業生

    前端過度技術化,這是病,作為資料展現,目前的技術已經過剩了,一味的為了技術而技術,會給真正的技術挖坑,最後你會看到,真正需要技術的地方(後端,底層)確落後了。國內技術人員不能助紂為虐!

  • 17 # 新城舊少哖

    如果是多人協作的很適合,特別是如果由你來主導的話,你會覺得真的太好用了,怎麼現在才發現呢,而且以後維護也是非常方便規範。但如果是一兩個人就可以完成的專案其實並不是很必要的,畢竟型別一多起來,感覺效率並不會很快。

  • 18 # 快來學英語

    建議去學習,TypeScript是在JavaScript的基礎之上引入了型別,有利於大規模系統的開發,減少潛在的bug。這個是有沒在需求的並不是憑空產生的,因此它的流行幾乎是必然的。現在vue3.0也採用了TypeScript,以後如果不學TypeScript,vue的程式碼看起來也很吃力了。

  • 中秋節和大豐收的關聯?
  • 當朋友經濟困難,你伸出援助之手,他拒絕償還,你是怎麼做的呢?