今天要介绍的是 generic classes
上面可以看到出现了很多错误,因为 data
、item
都没有定义型别,TypeScript 不知道传进来的东西到底是什麽,但是其实我们并没有很在意 class 到底会是什麽型别,这时就可以用 generic 型别帮忙了。
class DataStorage<T> {
private data: T[] = []
addItem(item: T) {
this.data.push(item)
}
removeITem(item: T) {
this.data.splice(this.data.indexOf(item), 1)
}
getItems() {
return [...this.data]
}
}
其实概念跟前面的 generic function 很像,都是先定义一个通用型别给 function 或是 class,等到真正要呼叫函式或是创建一个新的实例时再依照呼叫的函式跟创建的实例去决定型别,保有了非常高的弹性,但是一样有规范到型别。
上一篇在 generic function 定义了两个 generic 型别,当时我有点疑惑那跟 union 型别差在哪里,因为都可以接收不一样的型别。後来看了一下课程以及文件的解释,generic 型别是定义一整个 function 或是 class 的型别,比如说决定该 function 接收的参数是字串了那就都会是字串,但是 union 型别在於它是规范可以接收两种以上的型别,但没特别说一定要使用哪一种才行。
今天的学习笔记就到这边,谢谢阅读~:)
<<: day27 : k8s backup/restore/migrate with velero(下)
利用将资料切一半的方式来做搜寻,举例来说,如果要从数字1–100猜终极密码,如果采用线性搜寻法就是...
LINE Developers:https://developers.line.biz/zh-ha...
What is Amazon Macie? Macie是一项全代管的服务,它透过机器学习来辨别你的S...
这篇要来介绍 React router v5 加入的几个 hook,包括 useParams、use...
很开心能够完成 30天的 Open-Match 文章分享,其实中间有些东西,是我一边研究一边写出来的...