摘要:中即將推出的變化輸入提升自發(fā)布以來,我們一直在收到更好的集成請求。然而,當(dāng)使用開箱即用的時,目前的集成有些缺乏。例如,不能輕易地推斷使用的基于對象的默認(rèn)中的類型。這也使得將現(xiàn)有代碼庫遷移到更具挑戰(zhàn)性。
Vue 2.5中即將推出的TypeScript變化 輸入提升
自Vue 2.0發(fā)布以來,我們一直在收到更好的 TypeScript 集成請求。 自從發(fā)布以來,我們已經(jīng)為大多數(shù)核心庫(vue, vue-router, vuex)包含了官方的 TypeScript 類型聲明。 然而,當(dāng)使用開箱即用的 Vue API 時,目前的集成有些缺乏。 例如,TypeScript 不能輕易地推斷 Vue 使用的基于對象的默認(rèn) API 中 this 的類型。 為了使我們的 Vue 代碼可以很好地使用 TypeScript,我們必須使用 vue-class-component 裝飾器,這樣我們可以使用基于類的語法來創(chuàng)建 Vue 組件。
對于喜歡基于類的API的用戶來說,這可能已經(jīng)足夠好了,但對于僅僅為了類型推斷的用戶不得不使用不同的API是不幸的。 這也使得將現(xiàn)有 Vue 代碼庫遷移到 TypeScript 更具挑戰(zhàn)性。
今年早些時候,TypeScript 引入了許多新功能,這樣就可以改進(jìn)Vue的類型聲明從而使得 TypeScript 可以更好地理解基于對象字面量的 API。 來自 TypeScript 團(tuán)隊的 Daniel Rosenwasser 開始了一個雄心勃勃的PR(現(xiàn)在由核心團(tuán)隊成員 HerringtonDarkholme 在這維護(hù)),一旦合并,將提供:
使用默認(rèn)的 Vue API 時,對于 this 可以使用適當(dāng)?shù)念愋屯茢唷?它也可以在單文件組件中工作!
基于組件的 props 選項,對于 this 中的 props 輸入推斷。
最重要的是,這些改進(jìn)也使得純 JavaScript 用戶受益匪淺! 如果你使用 VSCode 與超級棒的的 Vetur 擴(kuò)展,你將獲得大大改進(jìn)的自動完成建議,甚至在Vue組件中使用純 JavaScript 時也能獲得輸入提示! 這是因為vue-language-server是負(fù)責(zé)分析 Vue 組件的內(nèi)部包,可以利用 TypeScript 編譯器來提取有關(guān)你的代碼的更多信息。 此外,任何支持語言服務(wù)器協(xié)議的編輯器都可以利用 vue-language-server來提供類似的功能。
對于那些好奇的人,你可以通過克隆這個 playground 項目(確保獲取 new-types 的分支)并使用 VSCode + Vetur 打開它來嘗試一下!
TypeScript用戶可能需要的操作輸入升級將在 Vue 2.5 中發(fā)布,目前計劃在10月初發(fā)布。 我們正在發(fā)布一個小版本,因為 JavaScript 公共 API 沒有任何突破性的變化,但是升級可能需要現(xiàn)有的 TypeScript + Vue 用戶采取一些操作。 這就是為什么我們現(xiàn)在宣布改變,以便你有足夠的時間來計劃升級。
新的輸入至少需要 TypeScript 2.4 版本,建議升級到最新版本的 TypeScript 以及 Vue 2.5。
之前,我們已經(jīng)推薦將 tsconfig.json 設(shè)為 “allowSyntheticDefaultImports”: true 從而在任何地方使用 ES 風(fēng)格的導(dǎo)入(import Vue from "vue")。 新的輸入將正式轉(zhuǎn)換為ES風(fēng)格的導(dǎo)入/導(dǎo)出語法,因此不再需要配置,并且用戶在所有情況下都需要使用ES風(fēng)格的導(dǎo)入。
為了配合導(dǎo)出語法的改變,以下依賴于 Vue 核心輸入的核心庫 vuex, vue-router, vuex-router-sync, vue-class-component 將會收到新的主要版本,并且應(yīng)與 Vue 核心 2.5 一起升級。
當(dāng)執(zhí)行自定義模塊擴(kuò)充時,用戶應(yīng)該使用 interface VueConstructor 而不是 namespace Vue。(example diff)
如果使用 ComponentOptions
我們盡力減少所需的升級工作,這些類型的改進(jìn)與 vue-class-component 中使用的基于類的 API 兼容。 對于大多數(shù)用戶來說,只需升級依賴并切換到ES風(fēng)格的導(dǎo)入即可。 同時,我們還建議你將Vue 版本鎖定到2.4.x,直到你準(zhǔn)備升級為止。
未來規(guī)劃:vue-cli中的TypeScript支持2.5之后,我們計劃在下一個版本的 vue-cli 中引入對TypeScript 的官方支持,以便使 TS + Vue 用戶更輕松地啟動新項目。 敬請關(guān)注!
對于非TypeScript用戶這些更改不會以任何負(fù)面的方式影響非 TypeScript Vue 用戶; 根據(jù)公共JavaScript API,2.5 將完全向后兼容,并且TypeScript CLI集成將完全選擇加入。 但是如上所述,如果你使用vue-language-server強(qiáng)大的編輯器擴(kuò)展,則會注意到更好的自動完成建議。
—
感謝 Daniel Rosenwasser, HerringtonDarkholme, Katashin 以及 Pine Wu 對于這些特性的工作以及對這篇文章的審閱。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/88950.html
摘要:感謝來自團(tuán)隊的發(fā)起的,以及核心團(tuán)隊成員和的改進(jìn)和審查。在中,我們已經(jīng)發(fā)布了一個與環(huán)境無關(guān)的版本,可以在瀏覽器或純引擎中使用。同樣,我們建議你查看完整的發(fā)布說明從而了解其他的改進(jìn),包括,,,等。 原文:Vue 2.5 released 譯者:neal1991 welcome to star my articles-translator , providing you advanced ...
2017-08-18 前端日報 精選 [譯] 關(guān)于 React Router 4 的一切騰訊祭出大招VasSonic,讓你的H5頁面首屏秒開用簡單的方法學(xué)習(xí)ECMAScript 6【譯】一個小時搭建一個全棧Web應(yīng)用框架你應(yīng)該知道的Debug技巧Understanding V8’s Bytecode – DailyJS – MediumAnnouncing TypeScript 2.5 RC 中文...
摘要:前端的發(fā)展歷程什么是前端前端針對瀏覽器的開發(fā),代碼在瀏覽器運行后端針對服務(wù)器的開發(fā),代碼在服務(wù)器運行前端三劍客超文本標(biāo)記語言是構(gòu)成世界的基石。 前端的發(fā)展歷程 什么是前端 前端:針對瀏覽器的開發(fā),代碼在瀏覽器運行 后端:針對服務(wù)器的開發(fā),代碼在服務(wù)器運行 前端三劍客 HTML CSS JavaScript HTML HTML(超文本標(biāo)記語言——HyperText Markup ...
摘要:他們的計劃是,使用微軟開發(fā)者們所習(xí)慣的其他語言的開發(fā)工具所支持的靜態(tài)類型,得到更好的代碼。在微軟內(nèi)部,被和以及團(tuán)隊所使用,而且它被系的等公司使用。標(biāo)準(zhǔn)的編輯,同時也是微軟項目高級經(jīng)理的也同意。 本文轉(zhuǎn)載自:眾成翻譯譯者:文藺鏈接:http://www.zcfy.cc/article/895原文:http://thenewstack.io/javascript-transpilers-n...
摘要:前端每周清單年度總結(jié)與盤點在過去的八個月中,我?guī)缀踔蛔隽藘杉?,工作與整理前端每周清單。本文末尾我會附上清單線索來源與目前共期清單的地址,感謝每一位閱讀鼓勵過的朋友,希望你們能夠繼續(xù)支持未來的每周清單。 showImg(https://segmentfault.com/img/remote/1460000010890043); 前端每周清單年度總結(jié)與盤點 在過去的八個月中,我?guī)缀踔蛔隽?..
閱讀 2721·2023-04-26 02:02
閱讀 2588·2023-04-25 20:38
閱讀 4122·2021-09-26 09:47
閱讀 3109·2021-09-10 10:50
閱讀 3774·2021-09-07 09:58
閱讀 3336·2019-08-30 15:54
閱讀 2703·2019-08-30 15:54
閱讀 1924·2019-08-29 17:03