<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
獲取TypeScript工具的方式:
通過npm(Node.js包管理器)
npm install -g typescript
建立專案資料夾
mkdir typescript_demo && cd typescript_demo
建立檔案greeter.ts
touch greeter.ts
將下面的程式碼寫入greeter.ts中
function greeter(person) { return "Hello, " + person; } let user = "Durban Zhang"; document.body.innerHTML = greeter(user);
這裡使用.ts擴充套件名,但是這段程式碼僅僅是JavaScript而已。 你可以直接從現有的JavaScript應用裡複製/貼上這段程式碼。
在命令列上,執行TypeScript編譯器:
tsc greeter.ts
輸出結果為一個greeter.js檔案,它包含了和輸入檔案中相同的JavsScript程式碼。
一切準備就緒,我們可以執行這個使用TypeScript寫的JavaScript應用了!
接下來讓我們看看TypeScript工具帶來的高階功能。
給 person函數的引數新增: string型別註解,如下:
function greeter(person:string) { return "Hello, " + person; } let user = "Durban Zhang"; document.body.innerHTML = greeter(user);
TypeScript裡的型別註解是一種輕量級的為函數或變數新增約束的方式。
在這個例子裡,我們希望 greeter函數接收一個字串引數。
然後嘗試把 greeter的呼叫改成傳入一個陣列:
function greeter(person:string) { return "Hello, " + person; } let user = "Durban Zhang"; document.body.innerHTML = greeter(user);
重新編譯,你會看到如下產生 的一個錯誤。
greeter.ts:7:35 - error TS2345: Argument of type 'number[]' is not assignable to parameter of type 'string'. 7 document.body.innerHTML = greeter(user);
類似地,嘗試刪除greeter呼叫的所有引數。
TypeScript會告訴你使用了非期望個數的引數呼叫了這個函數。
在這兩種情況中,TypeScript提供了靜態的程式碼分析,它可以分析程式碼結構和提供的型別註解。
要注意的是儘管有錯誤,greeter.js檔案還是被建立了。 就算你的程式碼裡有錯誤,你仍然可以使用TypeScript。但在這種情況下,TypeScript會警告你程式碼可能不會按預期執行。
這裡我們使用介面來描述一個擁有firstName和lastName欄位的物件。 在TypeScript裡,只在兩個型別內部的結構相容那麼這兩個型別就是相容的。
這就允許我們在實現介面時候只要保證包含了介面要求的結構就可以,而不必明確地使用 implements語句。
interface Person { firstName: string; lastName: string; } function greeter(person: Person) { return "Hello, " + person.firstName + " " + person.lastName; } let user = { firstName: "Durban", lastName: "Zhang" }; document.body.innerHTML = greeter(user);
最後,讓我們使用類來改寫這個例子。 TypeScript支援JavaScript的新特性,比如支援基於類的物件導向程式設計。
讓我們建立一個Student類,它帶有一個建構函式和一些公共欄位。 注意類和介面可以一起共作,程式設計師可以自行決定抽象的級別。還要注意的是,在建構函式的引數上使用public等同於建立了同名的成員變數。
class Student { fullName:string; constructor ( public firstName: string, public middleName: string, public lastName: string) { this.fullName = firstName + " " + middleName + " " + lastName; } } interface Person { firstName: string; lastName: string; } function greeter(person: Person) { return "Hello, " + person.firstName + " " + person.lastName; } let user = new Student("Durban", "M.", "Zhang"); document.body.innerHTML = greeter(user);
重新執行tsc greeter.ts,你會看到生成的JavaScript程式碼和原先的一樣。 TypeScript裡的類只是JavaScript裡常用的基於原型物件導向程式設計的簡寫。
建立greeter.html並在裡面輸入如下內容:
<!DOCTYPE html> <html> <head><title>TypeScript Greeter</title></head> <body> <script src="greeter.js"></script> </body> </html>
https://github.com/durban89/typescript_demo
tag: 1.0.0
以上就是TypeScript建立一個簡單Web應用的詳細內容,更多關於TypeScript建立Web應用的資料請關注it145.com其它相關文章!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45