類型改進
自Vue2.0發布以來,我們一直在收到更好整合TypeScript的請求。從那時起,我們已經為大多數核心函式庫(vue
,vue-router
,vuex
)加入了官方的TypeScript類型宣告。然而,當使用開箱即用的Vue API時,目前的整合還是有所欠缺。例如:TypeScript不能輕易的推斷出Vue使用的基於物件的預設API中的this
類型。想要讓我們的Vue程式碼與TypeScript更好的運作,我們需要使用vue-class-component裝飾器,它允許我們使用基於類別的語法來寫入Vue元件。
對於喜歡基於類別的API的用戶,這可能就夠好了,但是有點糟的是,只是為了類型判斷,用戶就不得不使用不同的API。這也使得將現有的Vue程式碼庫向TypeScript遷移更具挑戰。
今年的早些時候,TypeScript引入了一些新特性,能讓TypeScript更好的理解基於物件字面量的API,這也使得改進Vue的類型宣告更有可能。來自TypeScript團隊的Daniel Rosenwasser發起了一個雄心勃勃的PR(現在由核心團隊成員HerringtonDarkholme持有),一旦通過合併,將會提供:
使用預設的Vue API時對
this
的正確的類型推斷。這也能在單一檔案元件中很好的運作!基於元件的
props
配置的this
#的props
的類型推斷。更重要的是,這些改進也會讓純粹的JavaScript使用者受益! ,如果你正在配合很棒的Vetur擴充使用VSCode,在Vue元件中使用純粹的JavaScript時,你會感受到關於自動補全提示甚至是類型提示的顯著改進! 這是因為vue-language-server,這個分析Vue元件的內部套件,可以利用TypeScript編譯器來提取更多關於你程式碼的資訊。此外,任何支援語言服務協定的編輯器都可以利用vue-language-server來提供類似的功能。
#在運行中的VSCode + Vetur + 新類型宣告
有興趣的話,就克隆這個體驗項目(確保是new-types
分支)並使用VSCode + Vetur打開它來嘗試。
TypeScript用戶可能需要的操作
類型改進將在vue 2.5中實裝,目前計劃在十月初前後發布。我們正在發布一個小版本,因為JavaScript公共API還沒有突破性改變,但是,升級可能需要現有的Vue+TypeScript用戶進行一些操作。這也是我們現在公佈改動的原因,方便你有足夠的時間規劃升級。
新的型別需要至少2.4版的TypeScript。建議你隨著Vue2.5升級至最新的TypeScript版本。
之前,我們建議在
tsconfig.json
中配置"allowSyntheticDefaultImports": true
來使用ES風格的導入語法(import Vue from 'vue'
)。新的類型將正式轉換至ES風格的匯入/匯出語法,這樣上述配置就不需要了,而且使用者在所有情況下都要使用ES風格的匯入。為了配合語法的變化,下述有Vue核心類型依賴的函式庫將會有主版本更新,需要跟隨Vue2.5進行升級:
vuex
,vue-router
,vuex-router-sync
,vue-class-component
。現在,當增加自訂模組時,使用者需要使用
interface VueConstructor
來取代namespace Vue
(差異比較)#如果你使用
as ComponentOptions<something></something>
來註解你的元件配置,像computed
,watch
,render
和生命週期鉤子這種類型的需要手動進行類型註解。
我們盡力減少升級成本,並使這些類型改進與vue-class-component
中使用的基於類別的API相容。對於絕大多數用戶,只需要升級依賴關係,並切換至ES風格的導入。同時我們建議你在準備升級前,將你的Vue版本鎖定在2.4.x
。
藍圖:vue-cli中的TypeScript類型支援
在2.5版本後,我們計劃在下個vue-cli版本中去引入官方TypeScript支持,以便TS+Vue用戶能輕鬆的啟動新項目。敬請期待吧!
對於非TypeScript用戶
這些變更不會對非TypeScript用戶產生負面影響;就公用JavaScript API而言,2.5會完全向下相容,TypeScript CLI整合也可以完全的選擇性加入。但如剛才所提到的,如果你使用vue-language-server編輯器擴展,你會收到更好的自動補全提示。
以上是Vue 2.5中有關TypeScript的改進之處的詳細內容。更多資訊請關注PHP中文網其他相關文章!

從C/C 轉向JavaScript需要適應動態類型、垃圾回收和異步編程等特點。 1)C/C 是靜態類型語言,需手動管理內存,而JavaScript是動態類型,垃圾回收自動處理。 2)C/C 需編譯成機器碼,JavaScript則為解釋型語言。 3)JavaScript引入閉包、原型鍊和Promise等概念,增強了靈活性和異步編程能力。

不同JavaScript引擎在解析和執行JavaScript代碼時,效果會有所不同,因為每個引擎的實現原理和優化策略各有差異。 1.詞法分析:將源碼轉換為詞法單元。 2.語法分析:生成抽象語法樹。 3.優化和編譯:通過JIT編譯器生成機器碼。 4.執行:運行機器碼。 V8引擎通過即時編譯和隱藏類優化,SpiderMonkey使用類型推斷系統,導致在相同代碼上的性能表現不同。

JavaScript在現實世界中的應用包括服務器端編程、移動應用開發和物聯網控制:1.通過Node.js實現服務器端編程,適用於高並發請求處理。 2.通過ReactNative進行移動應用開發,支持跨平台部署。 3.通過Johnny-Five庫用於物聯網設備控制,適用於硬件交互。

我使用您的日常技術工具構建了功能性的多租戶SaaS應用程序(一個Edtech應用程序),您可以做同樣的事情。 首先,什麼是多租戶SaaS應用程序? 多租戶SaaS應用程序可讓您從唱歌中為多個客戶提供服務

本文展示了與許可證確保的後端的前端集成,並使用Next.js構建功能性Edtech SaaS應用程序。 前端獲取用戶權限以控制UI的可見性並確保API要求遵守角色庫

JavaScript是現代Web開發的核心語言,因其多樣性和靈活性而廣泛應用。 1)前端開發:通過DOM操作和現代框架(如React、Vue.js、Angular)構建動態網頁和單頁面應用。 2)服務器端開發:Node.js利用非阻塞I/O模型處理高並發和實時應用。 3)移動和桌面應用開發:通過ReactNative和Electron實現跨平台開發,提高開發效率。

JavaScript的最新趨勢包括TypeScript的崛起、現代框架和庫的流行以及WebAssembly的應用。未來前景涵蓋更強大的類型系統、服務器端JavaScript的發展、人工智能和機器學習的擴展以及物聯網和邊緣計算的潛力。

JavaScript是現代Web開發的基石,它的主要功能包括事件驅動編程、動態內容生成和異步編程。 1)事件驅動編程允許網頁根據用戶操作動態變化。 2)動態內容生成使得頁面內容可以根據條件調整。 3)異步編程確保用戶界面不被阻塞。 JavaScript廣泛應用於網頁交互、單頁面應用和服務器端開發,極大地提升了用戶體驗和跨平台開發的靈活性。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

DVWA
Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

SublimeText3漢化版
中文版,非常好用

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能