今天要介绍 TypeScript 的基本型别,TypeScript 跟 JavaScript 一样拥有最基本的几种型别 Number、String、Boolean、Object、Array。那在 TypeScript 要怎麽使用呢?这边沿用 Day 1 的例子:
function add (n1: number, n2: number) {
return n1 + n2
}
const number1 = "1"
const number2 = 1
const result = add(number1, number2)
console.log(result)
直接在要赋予型别的值後面加个冒号然後标记型别即可,string
以及 boolean
也是,这时如果像上面的程序码一样不小心把 number1
设成了字串时,编辑器就会提醒你:
如果忽略编辑器的提醒执行编译的话,终端机也会提醒你:
总之就是各种提醒 XD,这样要出错的机率就很小了!
其实也能够用 JavaScript 来做验证呀!比如说这样:
function add(n1, n2) {
if (typeof n1 === 'number' && typeof n2 === 'number') {
return n1 + n2
}
}
这样的话的确也可以,不过侦错的动作就会发生在 runtime 的时候,等於说必须得等编译完之後才能看到是否有错误,而 TypeScript 是在编译前就先侦测了。
Object 的写法也差不多,除了定义物件本身之外,还需要个别定义好里面每一个属性的型别:
const person: {
name: string;
age: number
} = {
name: 'Claire',
age: 27
}
但这样写很丑 XD,也可以用 type
注解来先把会用到的物件的全部型别都先一起定义好,最後要在物件上标记型别时直接标记定义好的 type 即可:
type Person = {
name: string;
age: number
}
const person: Person = {
name: 'Claire',
age: 27
}
如果要定义多个相同结构的物件时这样会比较乾净一些,这样的写法跟 interface
其实有点像,之後会再介绍到 interface
是什麽东东。
而 Array 的写法呢,则是这样:
let hobbies: string[]
这样就定义了一个规定里面都是字串的阵列,意思就是该阵列里面不能放数字,也不能放布林值,也不能放其他值,都不行!那如果今天真的很想放其他型别的值在阵列里怎麽办!!!那可以改个型别:
let hobbies: any[]
Any 型别可以让你放任何你想放的值,不过它太弹性了,这样其实就失去了使用 TypeScript 的原意了 QQ,所以这个型别请不要太常用,後面也会再介绍到 Any 型别。
以上是第四天的学习笔记~感谢阅读。:)
<<: D05 / 为什麽不会填错资料? - Inline class, Scope & DSL design in compose
>>: Day 04 HTML/JavaScript Attribute vs Property
昨天威尔猪示范了按钮的制作,很多小伙伴应该看完就崩溃了,样式设计很弹性没错,但写一个小小的按钮 +...
今天要介绍的模式是属於结构型模式的一种,此模式的名称我想大多数的人都听过或是知道它是做甚麽用的,...
Image picker flutter的照片操作,从相簿选照片或是拍照 之前用的时候版本是0.7....
再写登入的验证及功能 今天我们要来做登入的判断跟动作, 我们在HomeController.php引...
铁人赛已逐渐进入尾声,前面二十多天,我们一步步扩充加强 Ktor 功能,也整合了 ORM, Redi...