IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> typescript学习:class类 -> 正文阅读

[JavaScript知识库]typescript学习:class类

本文内容如下

class类

如果你都有了答案,可以忽略本文章,或去TS学习地图寻找更多答案


ES6中的 TS类

公共属性修饰符:

  • public:公开的,可读可写,默认修饰符
  • private:私有的,不可读不可写
  • protected:子类可访问
  • readonly: 只能读不能写
  • static:静态属性或静态方法(JS中也有)
class Animal {
    public name: string;
	
	constructor(name: string){
		this.name = name
	}
	
	static isAnimal(instantce) {
		return instantce instanceof Animal
	}
	
    eat(){
    	console.log(`${this.name} is eating`)
	}
}

const dog = new Animal('旺财')
dog.eat()            //旺财 is eating
Animal.isAnimal(dog) //true

TS类继承

class Person {
    name: string
    constructor(name: string) {
        this.name = name
    }
    run(): string {
        return `${this.name} is running`
    }
}
let p = new Person('dashen')
p.run()

class Student extends Person {
    constructor(name: string, public age: number) {
        super(name)  //实现继承父类的constructor中name
    }

    study() {
        console.log(`${this.name} is studying`)
    }
}
const s = new Student('小明')
console.log(s)  //{ name: '小明', age: 18 }
s.study()   //小明 is studying

存取器 setter getter

例子:对名字的长度做出限制

class People {
    private _fullname: string = 'tom'

    get fullname(): string {
        return this._fullname
    }

    set fullname(name: string) {
        if (name && name.length < 6) {
            this._fullname = name
        } else {
            console.log(`the length of '${name}' is greater than 6`)
        }
    }
}

let p = new People()
console.log(p.fullname);     //'tom'
p.fullname = 'hello world'   //the length of 'hello world' is greater than 6
p.fullname = 'hello'
console.log(p.fullname);     //'hello'

抽象类

抽象类:原型

  1. 使用关键字:abstract,抽象方法只能出现在抽象类里面
  2. 提供其他类继承的基类,不能直接被实例化
  3. 抽象类的子类必须实现抽象类里面的抽象方法
//定义标准
abstract class Animal {
    name: string = ''
    contructor(name: string) {
        this.name = name
    }

    run() {
        console.log(this.name + 'is running')
    }

    abstract eat(): any
}


class Dog extends Animal {
    constructor(public name: string) {
        super()
    }
    eat() {
        console.log(this.name + 'is eating')
    }
    sleep() {
        console.log(this.name + 'is sleeping')
    }
}
let d: Dog = new Dog('旺财')
d.eat()
d.run()

let d = new Animal('旺财')    // 报错,抽象类不能实例化

let d: Animal = new Dog('旺财')  
d.sleep()  //报错,抽象类没有sleep方法

学习更多

TS学习地图

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2021-10-23 12:23:04  更:2021-10-23 12:25:33 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/14 0:55:11-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码