本篇文章帶給大家的內容是關於如何從JavaScript到TypeScript?有一定的參考價值,有需要的朋友可以參考一下,希望對你有幫助。
想學習typeScript,我覺得你首先要對原生javaScript非常熟練,最基礎的知識最重要,然後要掌握ES5 ES6 ES7(7以後的最好知道一些),新技術掌握了,以後就不會那麼累。 typeScript =type javaScript ,在ES5/6/7 javaScript基礎上加了一個type!
TS相對JS來說,它真的非常嚴格,只要稍微不匹配接口或者值的類型,又或者是參數的個數不對,值改變後面跟原值型別不
一致,都會導致報錯。建議使用npm 全域安裝typeScript 然後使用tsc *.ts 進行編譯TS檔案
'typeScript的新增核心概念:'let app:string=2;這段程式碼就會報錯,因為值2 是一個number,而規定app是string類型,這樣在TS中會報錯的
新增值的類型:
any:可以是任意型別vold:一個空的回傳類型,例如function move():vold{} 這樣代表這個函數沒有回傳值,如果換成any,那麼就隨便這個
函數回傳什麼類型,但是他必須return 否則TS會報錯
新增概念:類型推論
- let app = 'hello' ; app=1 ; 這段程式碼就會報錯,因為TS把他當成了let app:string = 'hello',再次改變
app的值,必須是string類型,否則報錯,這就是型別推論
聯合類型
- ##let app: string | number = 'hello' ; app = 1; 這段程式碼是不會報錯的,因為app是一個聯合類型的變量,它即可以是
- javaScript也是一門物件導向的語言,但是ES5中它是基於原型實現的,ES6中使用了class類,這樣會更清晰的體會到
- 你可以把物件想像成一個女人(在TS中抽象化成變數let app )
- 我們使用介面來描述這個女人(在TS中使用let app : interfacename )
- 最後使用一些方法來獲得這個女人的聯絡方式(在TS中使用class類別裡面的方法去實現)
class ask{ name:string; tel ? :number ; //这里为什么加问号,因为你不一定能拿到她的号码,如果拿不到,那么便可以不传参数, 但是如果不加? ,你又没那么号码,那么你没有参数传进来,TS就会报错 age:number ; constructor(name,age,tel){ this.name=name; this.age=age; this.tel=tel } } interface check { name : string; age:number; tel ? :number; } let woman :check = new ask ('rose',20,1888888888);//假设你拿到美女所有资料 传入构造函数這樣你可以印出一把console.log(woman),看看它是怎樣的,上面這段程式碼是沒有報錯的。
- 上面的程式碼透過tsc指令編譯成JS檔後
var ask = /* @class / (function () { function ask(name, age, tel) { this.name = name; this.age = age; this.tel = tel; } return ask; }()); let woman = new ask('rose', 20, 1888888888); console.log(woman)"這裡要注意,很多TS的程式碼編譯後,是不會出現在JS檔中,例如const enum的枚舉,interface這些,當然後面還會遇到更多"
元組的概念
- JS中的數組,能儲存大量的內容,所謂的元祖,其實就是資料型別的不同的陣列
- [1,'1',true,false] 其實這個就是一個元組,只是叫法不一樣。
- enum app { red, blue, pink, deeppink }
- #console.log( app.red, app.blue, app.pink, app.deeppink) // 輸出0,1,2,3
- ##enum app2 { red = 2, blue, pink, deeppink }
- console.log(app2.red, app2.blue, app2.pink, app2.deeppink) // 輸出2,3,4,5
- 預設的第一個值是0;也可以自己定義,如果自訂和系統預設的衝突,TS是不認識的,
他也不會報錯,但我不建議你這樣做,畢竟誰沒事找事呢?
還有一個常數列舉
const enum Directions { Up, Down, Left, Right } let directions = [Directions.Up, Directions.Down, Directions.Left, Directions.Right]; // 结果是 0 1 2 3
* 假如包含了計算成員,則會在編譯階段報錯:
* const enum Color {Red, Green , Blue = "blue".length}; * 常數枚舉與普通枚舉的區別是,它會在編譯階段被刪除,並且不能包含計算成員。一試便知類別和接口 (最重要的之一)
* 一個類別一次只可以繼承一個接口,但是可以一次對應多個接口
interface check { name: string; age: number; hobby: Array<number> fuck: number[] //这两种写法是一样的 }</number>
class exp implements check { name: string age: number hobby:Array<number> fuck: number[] constructor(name, age, hobby, fuck) { this.name = name; this.age = age; this.hobby = hobby; this.fuck = fuck; } } let app = new exp('hello', 18, [1, 2, 3], [2, 3, 4])</number>
-------經過TS編譯後得到
var exp = /* @class / (function () { function exp(name, age, hobby, fuck) { this.name = name; this.age = age; this.hobby = hobby; this.fuck = fuck; } return exp; }()); var app = new exp('hello', 18, [1, 2, 3], [2, 3, 4]);
typeScript可能最難的就是如何理解優雅的物件導向編程,介面interface只是為了描述而已,
真正去實現,需要class類別去實現,ES6在typeScript中位置舉足輕重,
所以我建議你先去學習原生javaScript ES6再來學習typeScript,那樣會輕鬆很多,###
這篇文章到這裡就已經全部結束了,更多其他精彩內容可以關注PHP中文網的JavaScript教學影片欄位!
#以上是如何從JavaScript到TypeScript?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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廣泛應用於網頁交互、單頁面應用和服務器端開發,極大地提升了用戶體驗和跨平台開發的靈活性。

Python更适合数据科学和机器学习,JavaScript更适合前端和全栈开发。1.Python以简洁语法和丰富库生态著称,适用于数据分析和Web开发。2.JavaScript是前端开发核心,Node.js支持服务器端编程,适用于全栈开发。

JavaScript不需要安裝,因為它已內置於現代瀏覽器中。你只需文本編輯器和瀏覽器即可開始使用。 1)在瀏覽器環境中,通過標籤嵌入HTML文件中運行。 2)在Node.js環境中,下載並安裝Node.js後,通過命令行運行JavaScript文件。

如何在Quartz中提前發送任務通知在使用Quartz定時器進行任務調度時,任務的執行時間是由cron表達式設定的。現�...

在JavaScript中如何獲取原型鏈上函數的參數在JavaScript編程中,理解和操作原型鏈上的函數參數是常見且重要的任�...

在微信小程序web-view中使用Vue.js動態style位移失效的原因分析在使用Vue.js...


熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

Safe Exam Browser
Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

記事本++7.3.1
好用且免費的程式碼編輯器

Dreamweaver CS6
視覺化網頁開發工具

MinGW - Minimalist GNU for Windows
這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

PhpStorm Mac 版本
最新(2018.2.1 )專業的PHP整合開發工具