TypeScript的函数和类

一、函数

        定义函数类型:要指定函数参数个数、参数类型和返回值类型。之后指定变量为这个函数类型,此时可以不写函数返回值类型,它会根据返回值自动推断出类型。

        在定义函数类型时,括号中为参数及其类型,多个参数用逗号隔开,括号后使用“=>”指定返回值类型。声明函数时,括号中为参数及其类型,多个参数用逗号隔开,括号后面使用“:”,指定返回值类型。

        定义函数类型除了这种方式,还可以用接口。在前面学过,接口可以描述对象的“形状”,同理也可以描述函数的“形状”。参数有默认参数和可选参数,默认参数直接赋值,可选参数用“?”,可选参数必须写在必选参数后面。

二、类

        类是现实世界或思维世界中的实体在计算机中的反映,它将数据(属性)以及这些数据上的操作(方法)封装在一起。 面向对象的三大特性:封装、继承、多态。

        1、定义类

        关键字是class,类体中声明类的成员,有字段、构造函数和方法。声明字段时,如果没有初始化,并且也没有在构造函数中也没有赋值,这时就会有报错。所以age提示有错误。声明方法时,有两种方式,一是直接写方法,二是字段式方法。

        2、构造函数(constructor)

        在实例化对象时,构造函数有参数,则要按规定传参,没有参数则不传参。构造函数是用来初始化一些操作以及给对象属性赋值。构造函数中this值为新实例化的对象引用, 常通过"this.字段=值"为新对象的字段赋值。

        3、静态方法

        静态方法是用static修饰的,且只能由类进行访问,实例化后的对象只能访问成员方法。

        4、存取器set和get

        get用于获取变量的值,必须有返回值,set用于对变量进行赋值,必须有一个参数。

        5、继承

        关键字extends,子类继承父类中的属性,一个子类只能有一个父类,一个父类可以有多个子类。子类可以访问从父类直接或间接继承下来的属性。

        6、super

        一个类继承一个父类并且有构造方法,则该子类必须使用super。super必须在this的前面。这是因为用子类实例化对象的过程中,先是创建父类对象,然后在父类对象基础上追加子类成员得到子类对象,然后子类构造函数先执行,子类构造函数中super(<实参>)再调用父类构造函数的执行。

class People {
    behavior:string = '睡觉'
    age:number
    country:string
    constructor(type:string,age:number){
        this.country= type
        this.age = age
    }
    speak(){
        console.log('说话')
    }
}
class Chinese extends People{
    name:string
    constructor(name:string){
        super('Chinese',23)
        this.name = name
    }
}
let chinese = new Chinese('张三')
console.log(chinese) 
//Chinese { behavior: '睡觉', country: 'Chinese', age: 23, name: '张三' }

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值