guqzhou guqzhou
首页
快捷导航
下载站
  • Html 篇
  • Javascript 基础篇
  • 框架

    • Vue2
  • 前端文章

    • Css 篇
    • 微信开发
    • JavaScript
    • Vue
  • 学习笔记

    • 《JavaScript教程》笔记
    • 《ES6 教程》笔记
    • 《Vue》笔记
    • 《TypeScript 从零实现 axios》
    • 小程序笔记
    • JavaScript 基础
  • HTML
  • CSS
  • 技术文档
  • GitHub技巧
  • Nodejs
  • 博客搭建
  • 面试题库

    • HTML
    • CSS
    • jQuery
    • Vue
    • 零碎
  • 面试心得

    • 杂言碎语
  • 摘抄收录

    • ☆ 励志鸡汤
    • ❀ 人间烟火
    • ☣ 万物沦丧
    • ✌ 关掉烦恼
    • ✲ 小酒馆
  • 读书笔记

    • 《小狗钱钱》
    • 《穷爸爸富爸爸》
    • 《聪明人使用方格笔记本》
关于
  • 学习
  • 面试
  • 心情杂货
  • 友情链接
  • 分类
  • 标签
  • 归档
  • 网站
  • 资源
  • Vue资源
  • 主站CDN
  • Vercel
  • Netlify
  • Github
GitHub

guqzhou

喜欢所以去追求!
首页
快捷导航
下载站
  • Html 篇
  • Javascript 基础篇
  • 框架

    • Vue2
  • 前端文章

    • Css 篇
    • 微信开发
    • JavaScript
    • Vue
  • 学习笔记

    • 《JavaScript教程》笔记
    • 《ES6 教程》笔记
    • 《Vue》笔记
    • 《TypeScript 从零实现 axios》
    • 小程序笔记
    • JavaScript 基础
  • HTML
  • CSS
  • 技术文档
  • GitHub技巧
  • Nodejs
  • 博客搭建
  • 面试题库

    • HTML
    • CSS
    • jQuery
    • Vue
    • 零碎
  • 面试心得

    • 杂言碎语
  • 摘抄收录

    • ☆ 励志鸡汤
    • ❀ 人间烟火
    • ☣ 万物沦丧
    • ✌ 关掉烦恼
    • ✲ 小酒馆
  • 读书笔记

    • 《小狗钱钱》
    • 《穷爸爸富爸爸》
    • 《聪明人使用方格笔记本》
关于
  • 学习
  • 面试
  • 心情杂货
  • 友情链接
  • 分类
  • 标签
  • 归档
  • 网站
  • 资源
  • Vue资源
  • 主站CDN
  • Vercel
  • Netlify
  • Github
GitHub
  • vue2
  • CSS

  • Javascript基础

  • javascript进阶

  • typeScipt

    • ts入门
    • ts接口和对象类型
    • 泛型
    • 枚举
    • 类型推论 、类型别名
    • never
    • typeScipt教程文档
    • 联合类型、交叉类型
    • class类
    • 泛型高级用法
    • 面向对象
      • ts Class类
        • 回顾ES6 Class类
        • ts不能在constructor定义变量的,需要在constructor上面先声明
    • typescript用localStorage封装过期时间
  • vue2

  • vue3

  • react

  • vue实战

  • pinia的使用

  • gis

  • 前端文章

  • JavaScript文章

  • Vue文章

  • 小程序开发文章

  • uni-app

  • 学习笔记

  • TaroUI的使用

  • 工具使用

  • 前端
  • typeScipt
guqzhou
2024-01-05
0

面向对象

# ts Class类

# 回顾ES6 Class类

class Person {
    constructor (name,age) {
        this.name = name
        this.age = age
    }
    run() {
        
    }
}
1
2
3
4
5
6
7
8
9

# ts不能在constructor定义变量的,需要在constructor上面先声明

类型约束implements

interface Options {
    el: string | HTMLElement
}

interface Vnode {
    tag: string | HTMLElement
    text: string | null
    children: Vnode[]
}

interface VueCls {
    options: Options,
    init(): void
}

class Dom {
    createElement(el: string) {
        return document.createElement(el)
    }
    setText(el:HTMLElement, text: string | null) {
        el.textContent = text
    }
    rander(data: Vnode) {
        let root = this.createElement(data.tag)
        if(data.children && Array.isArray(data.children)) {
            data.children.forEach(item => {
                this.rander(item)
            })
        }
        return root
    }
}

class Vue extends Dom implements VueCls {
    options: Optionsfhfn
    constructor(options) {
        this.options = options
        this.init()
    }
    init(): void {
        let data: Vnode = {
            tag: 'div',
            children: [
                {
                    tag: 'span',
                    text: '测试'
                },
                {
                    tag: 'span',
                    text: '测试'
                }
            ]
        }
    }
}

new Vue({
    el: '#App'
})
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
上次更新: 2024/01/20, 21:01:00
泛型高级用法
typescript用localStorage封装过期时间

← 泛型高级用法 typescript用localStorage封装过期时间 →

最近更新
01
typescript用localStorage封装过期时间
01-05
02
npm、pnpm、yarn删除文件缓存
12-14
03
v-model介绍
12-03
更多文章>
Theme by Vdoing | Copyright © 2021-2024 guqzhou | 萌ICP备20238188号
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式