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
子站问答
访问
宣传栏