class 类型

// 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”赋值,因为它是只读属性
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容