请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

关于 this: Deck

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

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

正在回答

2回答

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

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

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

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

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

0 回复 有任何疑惑可以回复我~
  • 提问者 哈哈大笑x #1
    所以我的理解错在哪里呢
    回复 有任何疑惑可以回复我~ 2019-06-25 15:18:45
  • sowtf 回复 提问者 哈哈大笑x #2
    是定义类型,不是定义指向...也可能是我对你要表达的意思理解有误,你按照老师的答案理解就好了
    回复 有任何疑惑可以回复我~ 2019-06-25 23:32:25
  • 提问者 哈哈大笑x 回复 sowtf #3
    好的 谢谢
    回复 有任何疑惑可以回复我~ 2019-06-27 18:29:16
ustbhuangyi 2019-06-25 10:11:12

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

0 回复 有任何疑惑可以回复我~
  • 提问者 哈哈大笑x #1
    好的 谢谢老师
    回复 有任何疑惑可以回复我~ 2019-06-27 18:29:38

相似问题

登录后可查看更多问答,登录/注册

问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信