本文主要是介绍TS总结10、ts的 class 类型(配置项strictPropertyInitialization、非空断言),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一、简介
1.类(class)是面向对象编程的基本构件,封装了属性和方法
1.1、属性的类型:类的属性可以在顶层声明,也可以在构造方法内部声明,如果不给出类型;TypeScript 会认为x
和y
的类型都是any;
如果声明时给出初值,可以不写类型,TypeScript 会自行推断属性的类型;
class Point {x:number;y:number;
}
1.1.1.TypeScript 有一个配置项strictPropertyInitialization
,只要打开(默认是打开的),就会检查属性是否设置了初值,如果没有就报错
// 打开 strictPropertyInitialization
class Point {x: number; // 报错y: number; // 报错
}// 如果类的顶层属性不赋值,就会报错。如果不希望出现报错,可以使用非空断言。
class Point {x!: number;y!: number;
}
// 属性x和y没有初值,但是属性名后面添加了感叹号,表示这两个属性肯定不会为空,所以TypeScript
//就不报错了
1.2、readonly 修饰符:属性名前面加上 readonly 修饰符,就表示该属性是只读的。实例对象不能修改这个属性(构造方法内部设置只读属性的初值,修改只读属性的值都是可以的)
1.2.1. readonly 属性的初始值,可以写在顶层属性,也可以写在构造方法里面
// 构造方法内部设置只读属性的初值,这是可以的
class A {readonly id:string; constructor() {this.id = 'bar'; // 正确}
}class A {readonly id:string = 'foo';constructor() {this.id = 'bar'; // 正确}
}
// 构造方法修改只读属性的值也是可以的。或者说,如果两个地方都设置了只读属性的值,以构造方法
//为准。在其他方法修改只读属性都会报错
1.3、方法的类型:类的方法就是普通函数,类型声明方式与函数一致
待续。。。。。。。。。
这篇关于TS总结10、ts的 class 类型(配置项strictPropertyInitialization、非空断言)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!