class 类型

2024-02-14  本文已影响0人  0说
// class 类型
class Person {
  age: number
  name: string
  constructor(age: number, name: string){
    this.age = age
    this.name = name
  }
}
const p = new Person(666, 'james')
console.log(p.age)
// 方法声明
class ChangSc {
  x = 1
  y = 2
  scle(num: number): number{
    return this.x * this.y * num
  }
}
const sc = new ChangSc()
console.log(sc.scle(0.5))

// 继承 extends
class ChangSc2 extends ChangSc {
  changeXy(n: number) {
    this.x *= n
    this.y *= n
  }
}
const sc2 = new ChangSc2()
sc2.changeXy(10)
console.log(sc2.x)

// implements 实现接口
interface Singe { // 定义接口
  sayHi(n: number) : number
}
// 这个类如果要实现这个接口的时候一定要接口里面的定义
class MySinge implements Singe {
  sayHi(n: number) {
    return 6666 * n
  }
}
const mySinge = new MySinge()
mySinge.sayHi(66)

// readonly 只读
class Read {
  readonly x: number
  constructor(x: number) {
    this.x = x
  }
  setX() { // 定义了x为只读只能在 constructor 赋值 不能在其他地方变量值
    // this.x = 6
  }
}
new Read(6)

// 如果是接口类型或其他的 不能进行第二次赋值
interface ReadType {
  readonly x: number
}
let _p: ReadType = {
  x: 6666
}
console.log(_p)
// _p.x = 8888 // 报错 无法为“x”赋值,因为它是只读属性
上一篇 下一篇

猜你喜欢

热点阅读