typescript(Day2)函数和类
函数
ts就是一套完整的面向对象语言,所有的面向对象的语言其实语义都是互通的,因为之前我学习过c#,所以感觉是非常好理解的
TS中的函数和c#也是基本一样,八九不离十,除了函数的重载会稍微有点区别
- 和JS相比,TS的函数也是一样,我们可以提前约束函数的形参类型,函数的返回类型,ts是js的超集,所以JS能用的方法,ts都可以使用,包括es6新出的好用的语法
- 函数重载 - - 函数的方法名相同,但是形参不同(类型,个数)
JS 是没有办法实现重载的,因为在JS中我们如果写了两个同名的函数,要么就报错,要么就是后写的会覆盖掉先写的内容。因为ts考虑到兼容性,所以ts的重载和传统的c#的重载还是有区别的。
?:
表达式,这个表达式在php中也有,可有可无的意思
类
在ES5中,定义类是用过构造函数的方式来定义的,在es6的时候才推出了类这种语法糖的形式的写法,在ts中的类也是使用class这种语法糖的形式来使用的,如果会了ES6的类的写法,那么再来用ts的语法来写就非常的简单了
- ts为类提供了变量类型约束 - - 相比于es6的类会更加严谨
- ts为类提供了修饰变量的关键字
public
protected
private
关键字
public
默认关键字,不写就代表的是public,在这个关键的修饰下,这个变量可以被类本身、继承的类、类外部被使用protected
受保护关键字,在这个关键字的修饰下,这个变量可以被类本身、继承的类访问,但是无法在类外部访问private
私有关键字, 在这个关键字的修饰下,这个变量只能被类本身访问,在类外部,继承类都是不能访问的
什么是类本身访问
什么是继承类访问?
什么是类外部访问?
super()
函数,在继承的时候使用的,可以简单的理解成是继承父类的构造函数。一定是配合和extends
继承类的时候来使用的。
总结
- TS还是蛮简单的,在函数和类中就很好的体现了面向对象的思想,并且让JS变得十分的严谨,也可以理解成TS就是严谨版的JS