ts中修饰符
- public、protected、private、readonly
public
type IPerson = {
name: string;
age:number
}
class Person {
name: string; //默认public 子/父类,外部都可以访问与修改
age: number;
constructor(props: IPerson) {
this.name = props.name
this.age = props.age
}
}
protected (内部以及子类可修改 实例化对象不可修改)
type IPerson = {
name: string;
age:number
}
class Person {
protected name: string;
age: number;
constructor(props: IPerson) {
this.name = props.name
this.age = props.age
}
changeName() {
this.name = '张三' //可修改
}
}
class student extends Person {
constructor(props: IPerson) {
super(props)
}
changeName1() {
this.name = '李四' //可修改
}
}
const xiaoming = new Person({ name: '小明', age: 10 })
xiaoming.name = '张三' //不可修改
private (只有内部可修改)
type IPerson = {
name: string;
age:number
}
class Person {
private name: string;
age: number;
constructor(props: IPerson) {
this.name = props.name
this.age = props.age
}
changeName() {
this.name = '张三' //可修改
}
}
class student extends Person {
constructor(props: IPerson) {
super(props)
}
changeName1() {
this.name = '李四' //不可修改
}
}
const xiaoming = new Person({ name: '小明', age: 10 })
xiaoming.name = '张三' //不可修改
readonly (父类初始化或在constructor中可修改)
type IPerson = {
name: string;
age:number
}
class Person {
readonly name: string;
age: number;
constructor(props: IPerson) {
this.name = props.name //可修改
this.age = props.age
}
changeName() {
this.name = '张三' //不可修改
}
}
class student extends Person {
constructor(props: IPerson) {
super(props)
this.name = '11' //不可修改
}
changeName1() {
this.name = '李四' //不可修改
}
}
const xiaoming = new Person({ name: '小明', age: 10 })
xiaoming.name = '张三' //不可修改