如何用TypeScript來建立一個簡單的Web應用
轉載地址
如何用TypeScript來建立一個簡單的Web應用
安裝TypeScript
獲取TypeScript工具的方式:
通過npm(Node.js包管理器)
npm install -g typescript
構建你的第一個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裡常用的基於原型物件導向程式設計的簡寫。
執行TypeScript Web應用
建立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.git
tag: 1.0.0
相關文章
- 用 Vue 建立一個簡單的 electron 桌面應用Vue
- 如何用node.js建立一個應用Node.js
- [譯] 如何用 Flutter 來建立一個帶有底部導航欄的應用程式Flutter
- 一個簡單的 indexedDB 應用示例Index
- 使用vue-cli腳手架工具建立一個簡單的單頁應用Vue
- 在Java 11中建立一個簡單的模組化應用教程Java
- [譯]使用 Rust 開發一個簡單的 Web 應用,第 1 部分RustWeb
- 最簡單的nginx教程 - 如何把一個web應用部署到nginx上NginxWeb
- 建立一個簡單的小程式
- 一個最簡單的web componentsWeb
- 使用 Flutter 開發簡單的 Web 應用FlutterWeb
- Spring Boot 之路(一):一個簡單的Spring Boot應用Spring Boot
- 如何用python建立最簡單的伺服器Python伺服器
- Django應用建立到啟動的簡單示例Django
- 第一章 第一個簡單的iOS應用iOS
- 一個超級簡單的 go Web 框架GoWeb框架
- 分享一個簡單的 laravel 應用健康檢查命令Laravel
- 瞭解如何使用 Spring 和 RabbitMQ 建立一個簡單的釋出和訂閱應用程式SpringMQ
- NodeJs 建立一個簡單的登陸註冊NodeJS
- Flask之旅: 寫一個簡單的Python Web框架FlaskPythonWeb框架
- 如何用 CSS + HTML + JS 建立桌面應用CSSHTMLJS
- 如何用 Flutter開發一個直播應用Flutter
- 論如何用Vue實現一個彈窗-一個簡單的元件實現Vue元件
- 簡簡單單的總結,意如生活的平淡
- Laravel Nova 入門建立一個簡單的部落格Laravel
- 一圖搞懂Web應用的單點登入Web
- 如何用Java Socket實現一個簡單的Redis客戶端JavaRedis客戶端
- 是否有用於建立簡單CRUD應用的開源工具? - ycombinator開源工具
- 如何用Flask中的Blueprints構建大型Web應用FlaskWeb
- 開發Web應用為什麼要用TypeScript?WebTypeScript
- jsp的簡單應用JS
- Jenkins在Java web專案CI/CD中的簡單應用JenkinsJavaWeb
- 簡單的Web應用,從資料的獲取到頁面的展示Web
- 程式碼來構建一個簡單的compilerCompile
- SAP Cloud Platform integration上建立一個最簡單的iFlowCloudPlatform
- 用 go 實現一個簡單的 mvcGoMVC
- 如何用js寫一個簡單的迷宮和打地鼠遊戲JS遊戲
- 嘗試使用Knative建立一個應用