【TypeScript】抽象类 interface type的异同

ops/2024/10/9 4:53:35/

#抽象类 interface type相似点很多,容易混淆使用#

抽象类(abstract)

定义类的格式,既可以包含抽象方法,也可以包含具体方法

一个类只能继承(extends)一个抽象类

abstract class Person {constructor(public name: string) {}abstract speak(): void
}class Chlid extends Person {constructor(name: stringpublic age: number) {super(name)}speak(): void {console.log('咿呀')}
}

interface

只能描述结构,不能有具体实现

一个类可以实现(implements)多个接口

更专注定义对象和类的结构,支持继承、合并

interface Person {name: stringage: number
}interface Person { // 合并speak: () => void
}interface Student extends Person { // 继承study: () => void
}

type

定义类型别名、联合类型(|)、交叉类型(&)

type Person {name: stringage: number
} & {speak: () => void
}type Student = Person & {study: () => void
}

interface和type都可以定义对象结构,大多场景可互换


http://www.ppmy.cn/ops/122996.html

相关文章

MySQL运维

MySQL运维 创建健壮的MySQL健康检查Python类 在本文中,我们将介绍如何创建一个强大而灵活的Python类,用于封装MySQL运维命令并提供易用的接口。这个类不仅支持后续扩展,还提供完备的响应和错误信息,同时要求必要的登录信息以确保…

2024年下半年软考准考证什么时候打印?

2024年下半年软考准考证打印入口网址如下: https://bm.ruankao.org.cn/sign/welcome 广东的同学特别注意:准考证打印截止时间是11月8号,也就是考试前一天。一定要提前打印准考证,考试当天是无法打印的。 2024年下半年软考准考证…

.locked勒索病毒:数据安全的新威胁

导言 在数字时代,数据已成为企业和个人的核心资产,其价值无可估量。然而,随着网络技术的飞速发展,一种名为“.locked勒索病毒”的恶意软件悄然兴起,对全球范围内的数据安全构成了严重威胁。这种病毒以其独特的加密方式…

Pikachu-Cross-Site Scripting-反射型xss(get)

存储型XSS 存储型XSS是指恶意脚本被存储在目标服务器上,当用户访问包含该脚本的页面时,脚本会被执行。攻击者通常通过输入框、留言板等用户可输入的地方进行注入。例如,攻击者可以在留言板中输入恶意脚本,当其他用户查看留言时&a…

如何使用ssm实现基于Java的民宿预订管理系统的设计与实现

TOC ssm773基于Java的民宿预订管理系统的设计与实现jsp 绪论 1.1课题研究背景意义 随着科技的发展,计算机的应用,人们的生活方方面面都和互联网密不可分。计算机的普及使得人们的生活更加方便快捷,网络也遍及到我们生活的每个角落&#x…

【C++】多态练习题(面试常考)

学习之前,建议观看:【C】多态:深度剖析(多态、虚函数、抽象类、底层原理)_c 多态和虚函数,虚函数的实现原理-CSDN博客https://blog.csdn.net/2301_80555259/article/details/142178677?spm1001.2014.3001.5501 一.概念…

前端推荐书单

‌HTML5‌ 《HTML5精粹》 《HTML5入门经典》 ‌《HTML5权威指南》‌ ‌《HTML5高级程序设计》‌ ‌《HTML5实战》,掌阅电子书,已读完,已记笔记95% 《HTML5揭秘》 《HTML5与CSS3权威指南》读20%,笔记20%‌ CSS3 《CSS3专业网页开发指…

go语言protoc的详细用法与例子

一. 原来的项目结构 二. 选择源proto文件及其目录&目的proto文件及其目录 在E:\code\go_test\simple_demo\api 文件夹下,递归创建\snapshot\helloworld\v1\ad.pb.go E:\code\go_test\simple_demo> protoc --go_outpathssource_relative:./api .\snapshot\h…