关于 this: Deck

来源:3-19 函数 - this+ 重载

哈哈大笑x

2019-06-24

interface Deck {
    suits: string[]
    cards: number[]
    createCardPicker(this: Deck): () => Card
}

老师,您好
我想问一下这里this: Deck
是this加上了Deck类型,所以this指向的是 加上Deck这个类型的对象
我可以这样理解吗

写回答

2回答

sowtf

2019-06-24

我的理解是 this:Deck 是声明 this 必须是 Deck 类型的对象

后边的代码声明了一个 deck 对象,deck.createCardPicker()调用的时候 this 是指向 deck 对象的,而且deck 对象是 Deck 类型的

所以符合接口里面声明的类型定义

你理解的是this加上了Deck类型,所以this指向的是 加上Deck这个类型的对象

应该是this加上了Deck类型,所以 this 指向的对象必须是 Deck 类型的对象

0
3
哈哈大笑x
回复
sowtf
好的 谢谢
2019-06-27
共3条回复

ustbhuangyi

2019-06-25

楼上同学回答基本正确,我再补充一点,这个 this 参数是告诉编译器,这里的 this 指向的是 Deck,现在 TS 编译器知道 createCardPicker 期望在某个 Deck 对象上调用

0
1
哈哈大笑x
好的 谢谢老师
2019-06-27
共1条回复

下一代前端开发语言 TypeScript从零重构axios

课程从零开始重构功能完整的JS库,是学习造轮子的不二之选!

2629 学习 · 877 问题

查看课程