TypeScript-twmvc#16
-
Upload
twmvc -
Category
Technology
-
view
718 -
download
0
description
Transcript of TypeScript-twmvc#16
![Page 1: TypeScript-twmvc#16](https://reader033.fdocuments.net/reader033/viewer/2022060111/5564764bd8b42a5b318b506c/html5/thumbnails/1.jpg)
TypeScript
新貨上架..
Bibby Chunghttp://bibby.be
![Page 2: TypeScript-twmvc#16](https://reader033.fdocuments.net/reader033/viewer/2022060111/5564764bd8b42a5b318b506c/html5/thumbnails/2.jpg)
微軟最有價值專家(ASP.NET)
twMVC 聯合創辦人之一
手機程式業餘開發者
2
講者簡介
Bibby Chunghttp://bibby.be
![Page 3: TypeScript-twmvc#16](https://reader033.fdocuments.net/reader033/viewer/2022060111/5564764bd8b42a5b318b506c/html5/thumbnails/3.jpg)
TypeScript 要解決什麼問題
TypeScript 是什麼
TypeScript 如何開始
TypeScript 實戰(基本語法介紹)
TypeScirpt 雷?
3
Agenda
![Page 4: TypeScript-twmvc#16](https://reader033.fdocuments.net/reader033/viewer/2022060111/5564764bd8b42a5b318b506c/html5/thumbnails/4.jpg)
4
問題一
JavaScript,一種直譯式程式語言,是一種動態型別、弱型別、基於原型的語言,內建支援型別。
![Page 5: TypeScript-twmvc#16](https://reader033.fdocuments.net/reader033/viewer/2022060111/5564764bd8b42a5b318b506c/html5/thumbnails/5.jpg)
5
看看這個範例
(function(){log(); //??
var log = function () {console.log('Print 1.');
};
log(); //??
function log() {console.log('Print 2.');
}
log(); //??})();
![Page 6: TypeScript-twmvc#16](https://reader033.fdocuments.net/reader033/viewer/2022060111/5564764bd8b42a5b318b506c/html5/thumbnails/6.jpg)
>>"Print 2."
>>"Print 1."
>>"Print 1."
6
結果
![Page 7: TypeScript-twmvc#16](https://reader033.fdocuments.net/reader033/viewer/2022060111/5564764bd8b42a5b318b506c/html5/thumbnails/7.jpg)
好處
自由度超大,寫的時候可以很開心,不太需要管啥型別的問題
壞處
打錯字,沒有 IntelliSense (但工具支援)
型別轉換問題,有時不是我們想像的 ('2' + 3)
型別錯誤只在 Run-Time 的時候才知道,無法在開發時就發生
7
JavaScript 型別系統
![Page 8: TypeScript-twmvc#16](https://reader033.fdocuments.net/reader033/viewer/2022060111/5564764bd8b42a5b318b506c/html5/thumbnails/8.jpg)
Class
Interface
編譯時型別(錯誤)檢查 (compile time)
8
TypeScript 解決方案
![Page 9: TypeScript-twmvc#16](https://reader033.fdocuments.net/reader033/viewer/2022060111/5564764bd8b42a5b318b506c/html5/thumbnails/9.jpg)
9
問題二
如何模組化您的 JavaScript
![Page 10: TypeScript-twmvc#16](https://reader033.fdocuments.net/reader033/viewer/2022060111/5564764bd8b42a5b318b506c/html5/thumbnails/10.jpg)
AngularJS
Controller, Service, Factory …
RequireJS
YUI
捲起袖子自己幹...
10
模組化
![Page 11: TypeScript-twmvc#16](https://reader033.fdocuments.net/reader033/viewer/2022060111/5564764bd8b42a5b318b506c/html5/thumbnails/11.jpg)
Module
Namespace like
可以選擇哪些內容要公開
程式分離
可測試
維護性高
11
TypeScript 解決方案
![Page 12: TypeScript-twmvc#16](https://reader033.fdocuments.net/reader033/viewer/2022060111/5564764bd8b42a5b318b506c/html5/thumbnails/12.jpg)
12
TypeScript 是什麼
http://mobileosgeek.com/visual-studio-2013-tips-and-tricks-javascript-editor-enhancements/
![Page 13: TypeScript-twmvc#16](https://reader033.fdocuments.net/reader033/viewer/2022060111/5564764bd8b42a5b318b506c/html5/thumbnails/13.jpg)
13
TypeScript 是什麼
TypeScript lets you write JavaScript the way you really want to.TypeScript is a typed superset of JavaScript that compiles to plain JavaScript.Any browser. Any host. Any OS. Open Source.
![Page 14: TypeScript-twmvc#16](https://reader033.fdocuments.net/reader033/viewer/2022060111/5564764bd8b42a5b318b506c/html5/thumbnails/14.jpg)
由微軟開發的新語言(Open Source),目前版本v1.0.1
是 JavaScript 的一個超集(Superset)
擴充功能了 JavaScript 的語法
為大型應用之開發而設計
編譯時產生純 JavaScript,支援 es3/es5/es6
http://kangax.github.io/compat-table/es5/
14
TypeScript 是什麼
![Page 15: TypeScript-twmvc#16](https://reader033.fdocuments.net/reader033/viewer/2022060111/5564764bd8b42a5b318b506c/html5/thumbnails/15.jpg)
支援一般的 JavaScript,可以不改變在 TypeScript 下編譯
提供型別的概念
可藉由 class 跟 module 來提供封裝的功能
支援建構式,屬性,函式
可定義 interface
Arrow Function Expression(lambda)
IntelliSense 和語法檢查(VS, WebStorm 支援)
ECMAScript 6 脈絡的方式設計
15
特性
![Page 16: TypeScript-twmvc#16](https://reader033.fdocuments.net/reader033/viewer/2022060111/5564764bd8b42a5b318b506c/html5/thumbnails/16.jpg)
Demo => Hello Word
16
如何開始
![Page 17: TypeScript-twmvc#16](https://reader033.fdocuments.net/reader033/viewer/2022060111/5564764bd8b42a5b318b506c/html5/thumbnails/17.jpg)
TypeScript 官網
Visual Studio + Web Essentials
NodeJS
WebStorm
Sublime
17
工具介紹
![Page 18: TypeScript-twmvc#16](https://reader033.fdocuments.net/reader033/viewer/2022060111/5564764bd8b42a5b318b506c/html5/thumbnails/18.jpg)
18
提槍上戰場做就對了 ToDoList
![Page 19: TypeScript-twmvc#16](https://reader033.fdocuments.net/reader033/viewer/2022060111/5564764bd8b42a5b318b506c/html5/thumbnails/19.jpg)
需求
基本的新增刪除表單
商業邏輯跟頁面邏輯要分開
商業邏輯可測試
19
提槍上戰場做就對了 ToDoList
![Page 20: TypeScript-twmvc#16](https://reader033.fdocuments.net/reader033/viewer/2022060111/5564764bd8b42a5b318b506c/html5/thumbnails/20.jpg)
用 Model-View-Presenter (MVP) Pattern 實做
http://msdn.microsoft.com/en-
us/library/ff649571.aspx
20
提槍上戰場做就對了 ToDoList
![Page 21: TypeScript-twmvc#16](https://reader033.fdocuments.net/reader033/viewer/2022060111/5564764bd8b42a5b318b506c/html5/thumbnails/21.jpg)
參考
http://icanmakethiswork.blogspot.tw/2014/02/typesc
ript-and-requirejs-keep-it-simple.html
http://www.codebelt.com/typescript/typescript-amd-
with-requirejs-tutorial/
21
RequireJS 模組化
![Page 22: TypeScript-twmvc#16](https://reader033.fdocuments.net/reader033/viewer/2022060111/5564764bd8b42a5b318b506c/html5/thumbnails/22.jpg)
沒有定義檔(definite type)
請用 any
用 interface 的方式宣告
自己寫定義檔也是可以的
http://www.stevefenton.co.uk/Content/Blog/Date/201301
/Blog/Complex-TypeScript-Definitions-Made-Easy/
https://github.com/borisyankov/DefinitelyTyped
22
雷…………
![Page 23: TypeScript-twmvc#16](https://reader033.fdocuments.net/reader033/viewer/2022060111/5564764bd8b42a5b318b506c/html5/thumbnails/23.jpg)
Dart
http://darlang.org
CoffeeScript
http://coffeescript.org
23
其它選擇
![Page 24: TypeScript-twmvc#16](https://reader033.fdocuments.net/reader033/viewer/2022060111/5564764bd8b42a5b318b506c/html5/thumbnails/24.jpg)
官網 http://www.typescriptlang.org/
GitHub https://github.com/Microsoft/TypeScript/
定義檔
https://github.com/borisyankov/DefinitelyTyped
24
資源
![Page 25: TypeScript-twmvc#16](https://reader033.fdocuments.net/reader033/viewer/2022060111/5564764bd8b42a5b318b506c/html5/thumbnails/25.jpg)
25
Q&A
![Page 26: TypeScript-twmvc#16](https://reader033.fdocuments.net/reader033/viewer/2022060111/5564764bd8b42a5b318b506c/html5/thumbnails/26.jpg)
Blog http://bibby.be
Facebook http://fb.me/bibbynet
26
聯絡我
Bibby Chunghttp://bibby.be
![Page 27: TypeScript-twmvc#16](https://reader033.fdocuments.net/reader033/viewer/2022060111/5564764bd8b42a5b318b506c/html5/thumbnails/27.jpg)
好活動需要支持
感謝 KKTIX 贊助 twMVC 活動報名平台
27
![Page 29: TypeScript-twmvc#16](https://reader033.fdocuments.net/reader033/viewer/2022060111/5564764bd8b42a5b318b506c/html5/thumbnails/29.jpg)
完成步驟就可以拿到
29
1. 今天有出席
2. 填寫線上問卷
http://1drv.ms/XmQDxJ
![Page 30: TypeScript-twmvc#16](https://reader033.fdocuments.net/reader033/viewer/2022060111/5564764bd8b42a5b318b506c/html5/thumbnails/30.jpg)
謝謝各位
• 本投影片所包含的商標與文字皆屬原著作者所有。• 本投影片使用的圖片皆從網路搜尋。• 本著作係採用 Creative Commons 姓名標示-非商業性-相同方式分享 3.0 台灣 (中華民國) 授權條款授權。
h t t p : / / m v c . t w