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”赋值,因为它是只读属性