More Related Content More from Will Huang (20) 用不用 TypeScript 隨便你,反正我是用了 (JSDC2020)2. JavaScript 是個「弱型別」的程式語言
var data = {
id: 1,
name: 'Will',
records: [1, 2, 3]
};
processData(data);
function processData(data) {
if (data.record[0].id === 1) {
console.log('Awesome!');
}
}
JavaScript 擁有一個自由的靈魂
無法在開發時期
宣告變數型別
你永遠不知道會接到什麼物件
TypeError: Cannot read property '0' of undefined
8. TypeScript 透過型別擴充 JavaScript
• JS TS JS
- npm i -g typescript ts-node
- tsc --init
- 將 *.js 直接改成 *.ts
- ts-node main.ts
• 理解 TS 的編譯過程
- 型別檢查只在編譯時期發生!
• 開發工具看的懂你的原始碼
8
TypeScript
ES 2015 ~
ES 2020
ES5
9. 將一個兩萬行 JS 專案升級 TS 的故事
• 專案時間:已經開發 1 年時間
• 開發人數:團隊規模 5 人、參與開發人數 10 人
• 程式風格:無限定
• 單元測試:無
• 開發經驗:稍微有經驗 2 人、真 ‧ Junior 工程師 3 人
• 程式行數:不含 Library 之主程式碼共 23,680 行
9
12. TypeScript 之美 - ReadOnly Types
12
type Person = {
name: string;
age: number;
};
type PersonPartial = Partial<Person>
type ReadonlyPerson = Readonly<Per
son>
var a: Person = {
name: "Will",
age: 18
};
var b: PersonPartial = {
name: "Will"
};
var c: ReadonlyPerson = {
name: "Will",
age: 123
};
c.name = "John";
13. TypeScript 之美 - Key Remapping
• Key Remapping in Mapped Types (TypeScript 4.1)
• Code: https://bit.ly/2RLEBvU
13
15. 完整的 TypeScript 發行紀錄
• TypeScript Release Notes
https://www.typescriptlang.org/docs/handbook/release-notes/
- Announcing TypeScript 4.1 Beta
- Announcing TypeScript 4.0
- Announcing TypeScript 3.9
- Announcing TypeScript 3.8
- Announcing TypeScript 3.7
- Announcing TypeScript 3.6
- Announcing TypeScript 3.5
- ...
15
18. The Will Will Web
網路世界的學習心得與技術分享
http://blog.miniasp.com/
Facebook
Will 保哥的技術交流中心
http://www.facebook.com/will.fans
Twitter
https://twitter.com/Will_Huang
聯絡資訊
Editor's Notes 無論你是前端或後端工程師,都逃不開 JavaScript 的魔掌,但是 JS 先天的弱型別特性,確實對千千萬萬開發者帶來不小的困擾。本次演講將著重在導入 TypeScript 的各種經驗分享,告訴你為什麼導入 TypeScript 之後,可以幫助你提升生命品質,過著比別人更好的生活。 很多人拖延是因為,心理上,如果你不想做某件事,腦袋會想辦法切換到別件事上,以停止痛苦感受。「大腦拐你停止做這件事,你要想辦法拐回來,」她建議,心中不要想著:「要完成這件事」,而是想:「我只要花25分鐘做這件事」。
每天學一點,有助於建立系統知識的記憶組塊(chunk),指的是一組以意義結合起來的資訊,「學習就像做大蛋糕,」歐克莉又比喻,很多材料要齊備,蛋糕基礎穩,才能一層層往上疊。如果不是每天固定學,而是拖到最後一分鐘才來學,無法建立穩固的知識基礎,形成長期記憶與能力。
很多人拖延是因為,心理上,如果你不想做某件事,腦袋會想辦法切換到別件事上,以停止痛苦感受。「大腦拐你停止做這件事,你要想辦法拐回來,」她建議,心中不要想著:「要完成這件事」,而是想:「我只要花25分鐘做這件事」。
每天學一點,有助於建立系統知識的記憶組塊(chunk),指的是一組以意義結合起來的資訊,「學習就像做大蛋糕,」歐克莉又比喻,很多材料要齊備,蛋糕基礎穩,才能一層層往上疊。如果不是每天固定學,而是拖到最後一分鐘才來學,無法建立穩固的知識基礎,形成長期記憶與能力。