好的,接下来就来介绍剩下的型别~分别是 Union、Aliases、Literal。
Union 型别可以接受指定多种型别给参数,这边延续 Day 4 的例子:
function add(input1: number, input2: number) {
const result = input1 + input2
return result
}
这边原本指定带进去 function 的参数只能是 number
,但是如果今天想要透过这个 function 相加不只是数字的值的话,那就可以用到 Union 型别,在型别後面加上 |
,再接续另一个想指定的型别:
function combine(input1: number | string, input2: number | string) {
const result = input1 + input2
return result
}
只要有需要的话,可以指定各种型别到参数,也不限定只能用两个,要三个也行~
上面的 input1
和 input2
指定了相同的 Union 型别,所以在这边我们可以用 Aliases 型别把重复指定的型别整合起来:
type Combinable = number | string
接下来就可以把上面重复指定的型别用 Combinable
替换掉了:
function combine(input1: Combinable, input2: Combinable) {
const result = input1 + input2
return result
}
Literal 型别则是直接指定该变数的值,根据文件说明:
let x: "hello" = "hello";
// OK
x = "hello";
// ...
x = "howdy";
// error: Type '"howdy"' is not assignable to type '"hello"'.
当指定变数 x
的型别是 "hello"
时,那该变数便不能再改变其值,其实跟 JavaScript 的 const
一样,但在这边其实没有多大的用处,不过如果把这个跟 Union 型别结合在一起的话,在一些情况下会比较实用,比如说有一个 function 的设计只能接收某些指定的值时:
function printText(s: string, alignment: "left" | "right" | "center") {
// ...
}
printText("Hello, world", "left");
printText("G'day, mate", "centre");
// error: Argument of type '"centre"' is not assignable to parameter of type '"left" | "right" | "center"'.
不只字串的 Literal 型别,数字以及布林值也一样能够用这个方式。
今天的学习笔记暂且到此,感谢阅读。:)
<<: Day 6 - 从 foot-printing 开始
吃了美式和韩式烤肉,两天都是重口味烤肉,今天换清爽一点的日式烤肉吧 这次要自制日式盐葱酱,家里一秒变...
前情提要 前两天,我们开始为 Vue.js • TodoMVC 攥写 E2E 测试,并分别在 Cyp...
网路,是我们生活圈不可缺少的一部分。 每天一早,不少人都会打开手机查看新的讯息、新闻或影片。 由此可...
谈到专案产出如何变成小步骤,这就是一门专业的学问,就是每个专案绝对不一样的地方。什麽?你说维护专案都...
Espresso Espresso是一种UI Test自动化测试框架,可以在短时间跑完测试并且可以跟...