如何用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
- 開發和部署一個簡單的Clojure Web應用Web
- [譯] 如何用 Flutter 來建立一個帶有底部導航欄的應用程式Flutter
- 一個簡單的iptable的應用
- 在Java 11中建立一個簡單的模組化應用教程Java
- 一個簡單的 indexedDB 應用示例Index
- 使用vue-cli腳手架工具建立一個簡單的單頁應用Vue
- 用Python寫一個簡單的Web框架PythonWeb框架
- [譯]使用 Rust 開發一個簡單的 Web 應用,第 1 部分RustWeb
- 建立一個簡單的小程式
- 最簡單的nginx教程 - 如何把一個web應用部署到nginx上NginxWeb
- [譯]使用 Rust 開發一個簡單的 Web 應用,第 3 部分 —— 整合RustWeb
- [譯]使用 Rust 開發一個簡單的 Web 應用,第 2a 部分RustWeb
- 【菜鳥學Java】5:“徒手”建立一個Web應用JavaWeb
- [譯]使用 Rust 開發一個簡單的 Web 應用,第 2b 部分RustWeb
- 構建一個簡單的react-typescript專案ReactTypeScript
- 使用 Flutter 開發簡單的 Web 應用FlutterWeb
- 6個建立Web應用程式的高效PHP框架WebPHP框架
- Django應用建立到啟動的簡單示例Django
- 第一章 第一個簡單的iOS應用iOS
- 一個超級簡單的 go Web 框架GoWeb框架
- [譯]使用 Rust 開發一個簡單的 Web 應用,第 4 部分 —— CLI 選項解析RustWeb
- SpringBoot 1024行程式碼 – Getting Started(一個簡單的web應用)Spring Boot行程Web
- 如何用python建立最簡單的伺服器Python伺服器
- 分享一個簡單的 laravel 應用健康檢查命令Laravel
- 開發一個簡單的 HTTP 伺服器應用HTTP伺服器
- 開始使用ASP.NET Core - 建立第一個Web應用ASP.NETWeb
- 利用Git Hooks簡單部署、更新Web應用GitHookWeb
- Spring Boot 之路(一):一個簡單的Spring Boot應用Spring Boot
- 如何用 Flutter開發一個直播應用Flutter
- 簡簡單單的總結,意如生活的平淡
- 建立第一個簡單的AI分類器AI
- 如何用 CSS + HTML + JS 建立桌面應用CSSHTMLJS
- 一個使用snap的Web應用 (轉)Web
- 論如何用Vue實現一個彈窗-一個簡單的元件實現Vue元件
- spring2.5的第一個簡單應用的學習Spring
- 使用 Swift 建立簡單的二維碼掃描應用Swift