Day 1 前言

刚转职成功的前端菜鸡第一次参赛,原本想简单开心的每天写一个小小的专案练习 JavaScript, CSS 跟 HTML 来当参赛文章,後来知道新的专案要使用没学过的 ΤypeScript + Svelte,战战兢兢之余也决定把参赛题目换掉,希望能够帮助我在短时间内对 TypeScript 更加的熟悉与上手。

本系列文章定位是学习笔记,所以不会很有系统的规划与安排,目前的打算是学到什麽就会写什麽,学习的教材以 Traversy Media 的 TypeScript Crash Course 2021 以及 Udemy 上面的
Understanding TypeScript - 2021 Edition 加上搭配查阅官方文件为主。未来若心有余力会再次回来编排,除了 TypeScript 之外或许也会写到 TypeScript 与 Svelte 的结合,还请阅读的各位多多包涵,如有错误也请多多指教。:)

今天第一天,想来简单介绍一下 TypeScript,之前看很多大神的文章都提到,一个工具或是语言的诞生,在学习之前得要去了解它是为了解决什麽问题,所以以下会从 Why, How, What 这三个角度切入。

为什麽要有 TypeScript ?

用 JavaScript 开发时,要抓错时都得在编译过後到浏览器开 DevTool 来看出了什麽错误,这样几次下来除了烦躁不说之外,也有可能让专案因为这些错误而要来来回回的修正阿!
比如说请看以下的程序码:

function add (n1, n2) {
  return n1 + n2
}

const number1 = 1
const number2 = 1

const result = add(number1, number2)
console.log(result) // 2

这边看很容易可以猜到答案会是2,因为只有短短几行的程序码。那如果在设定变数的时候不小心改成这样呢?

function add (n1, n2) {
  return n1 + n2
}

const number1 = "1"
const number2 = 1

const result = add(number1, number2)
console.log(result) // 11

如果没有把 number1 转成 number,这就会变得跟预期的答案不一样了!或许看到这边心里的 OS 是开发者们怎麽可能会犯这样的错呢!!!但请设想如果在上千行的 code 里面一不留神没有注意到时,那要追溯 bug 的原由可能就得花上不少时间了,所以如果能在「一开始」就避免掉这类的问题,是不是开发的过程能够更加的放心了呢~

如何解决这个问题呢?

TypeScript 就是为了解决这些问题而诞生的,最重要的地方就是它增加了静态型别,强制开发者在开发的时候要定义好每一个栏位的型别,编译成 JavaScript 时会确保已经是没有问题的程序码了,减少一些动态语言会出错的机率。

好,接下来要做什麽呢?

做什麽?当然就是把 TypeScript 学起来呀~

最後列举出 TypeScript 的优缺点:

优点 缺点
TypeScript 在编译前就会帮忙侦错了 要写比较多的 code
比较容易找到 bug 学习成本较高
可读性高 一定得需要编译,因为浏览器不懂 .ts 档案
因为一开始就定义好型别了,所以可预测性高 并非真正的静态语言(最後还是得编译成 .js 档案)

好的,今天的学习笔记就先到这边,谢谢阅读,明天见。:)


<<:  Material UI in React [ Day15 ] Navigation Stepper 步骤卡

>>:  Day1-先来説说为什麽要介绍JDK的工具

[Report] 怎麽插入图片

插入图表 插入图表的方式有2种 1.右键插入图表(Image) 2.从Toolbox拖拉图表过来 再...

Day_13 : 让 Vite 来开启你的Vue 之 Option API 与 Mixins

Hi Dai Gei Ho~ 我是Winnie~ 在昨天的文章中,我们有简单的提到 Composit...

【Day 01】从零开始的 Line Chatbot 系统-序章

暑假後期,指导教授给了第三届 Line Chatbot 设计大赛的资讯。 虽然比赛内容主要放在设计、...

linebot 结合网路爬虫

linebot 结合网路爬虫 讲解完网路爬虫的实际应用後,接下来将他跟 Line chatbot 进...

人脸辨识-day25 Overfitting、Underfitting

在处理完资料集後,将资料放入模型训练时,会将资料集分为训练集、验证集和测试集,训练集是模型会对训练集...