Vue3和TS写法问题?

24行代码为什么需要this,不用this有啥区别

13行代码 为什么用的是 implements呢? Busclass又不是接口,是TS的特殊写法吗?

阅读 1.3k
1 个回答

先回答 24 行,用不用 this 问题都不大。

对于使用方来说,想用 this ,那么必定是箭头函数,apply 也改不了。如果不想用this,那么改不改都一样。


13 行,就是 ts 的特性了,支持这样写。

image.png

但是如下这种就不太好使


type Pingable3 = {
  ping: (text: string) => void;
} |  {
  ping2: (text: string) => void;
}
 
class Sonar6 implements Pingable3 {
}

image.png


测试代码

interface Pingable {
  ping(text: string): void;
}
type Pingable1 = {
  ping: (text: string) => void;
}
 

//  
class Sonar implements Pingable {
  ping() {
    console.log("ping!");
  }
}
class Sonar1 implements Pingable {
}
class Sonar2 implements Pingable1 {
}
class Sonar3 implements Pingable1 {
  ping() {
    console.log("ping!");
  }
}
class Sonar4 implements Pingable1 {
  ping(text: string) {
    console.log("ping!", text);
  }
}



type Pingable3 = {
  ping: (text: string) => void;
} |  {
  ping2: (text: string) => void;
}
 
 type Pingable4 = {
  ping: (text: string) => void;
} &  {
  ping2: (text: string) => void;
}
class Sonar6 implements Pingable3 {
}
class Sonar7 implements Pingable4 {
  ping(text: string) {
    console.log("ping!", text);
  }
  ping2(text: string) {
    console.log("ping!", text);
  }
}
本文参与了SegmentFault 思否面试闯关挑战赛,欢迎正在阅读的你也加入。
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Microsoft
子站问答
访问
宣传栏