传统的javascript是没有类的,在ts中,你可以像C#、JAVA那样使用面向对象的语法,如class extends implement,interface,public,private ,get,set这些语法统统都有,继承,多态,封装都可以正常实现
特殊的,在类的声明内,在函数声明中如果要获取同类属性时需要this.属性
派生类包含了一个构造函数,它必须调用 super()
,它会执行基类的构造函数。 而且,要在构造函数里访问 this
的属性之前调用 super()
。 这个是TypeScript强制执行的一条重要规则。
在js中需要声明function,在ts中,在class中不需要使用function关键字去声明,可以直接像其它语言的方式在class中声明函数,ts提供了函数的可选参数,默认参数,可以使用...参数直接指代剩余的所有参数组成的数组,等方式去声明函数,函数可以实现接口以在编译时进行检查
数组在ts中还可以用泛型的方式声明:
let a:Array=new Array();
数组本身在js中就是引用类型,这样声明的数组跟平常声明的没有什么不同
接口
接口可以定义类的属性,函数,也可以定义函数的参数,返回
接口中可以声明可选属性,任意属性