TypeScript前端学习(四)

前言

        还是分享的笔记,大佬请绕行!


一、类的定义和继承

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

console.log("----对象---");
var people = {"name": "张三",syaHi() {console.log("HI,my name is " + this.name);}
}
people.syaHi();console.log("----类---");
class People {name: string;constructor(name: string) {this.name = name;}syaHi() {console.log("HI,my name is " + this.name);}
}//实例化类
var people2 = new People("李四");
people2.syaHi();console.log("----类的继承---");
//类的继承
class Student extends People {constructor(name: string) {super(name);}syaHi() {console.log("HI,my name is " + this.name);}makeWorks() {console.log("我在做作业");}
}var student = new Student("小明");
student.syaHi() + "," + student.makeWorks();class Teacher extends People {subject: string;constructor(name: string, subject: string) {super(name);this.subject = subject;}syaHi() {super.syaHi();console.log("同学们好");}teach() {console.log(this.name + ",我在教" + this.subject);}
}var teacher = new Teacher("李老师", "数学");
teacher.syaHi();
console.log("----------")
teacher.teach();

示例效果
在这里插入图片描述

二、类的访问权限

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

console.log("----类的访问权限---");
class Animal {//private className:string="Animal";  //私有属性,只能在类内部访问(继承他的类用就会报错了)className: string = "Animal";protected constructor() {this.className = "Animal";    //受保护的构造函数,只能在类内部访问(继承他的类用就会报错了)}
}
//var animal = new Animal();  //TS2674: Constructor of class Animal is protected and only accessible within the class declaration.class Dog extends Animal {name: string;constructor(name: string) {super();this.name = name;}run() {console.log(this.name + "在跑");}
}
var dog = new Dog("小狗");
dog.run();

示例运行效果
注释的语句,报错描述写在注释里了
报错就是因为设置了protected等关键字

三、只读属性与存取器

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


console.log("----只读属性---")//
class Circle {readonly PI: number = 3.14;readonly r: number;constructor(r: number) {this.r = r;}getArea() {return this.PI * this.r * this.r;}
}
var circle = new Circle(10);
console.log(circle.getArea());//circle.r = 20; //TS2540: Cannot assign to 'r' because it is a read-only property.console.log("----存取器---");
class Circle2 {readonly PI: number = 3.14;protected r: number = 0;set R(r: number) {if (r < 0) {return;}this.r = r;}get R(): number {return this.r;}getArea() {return this.PI * this.r * this.r;}
}
var circle2 = new Circle2();
circle2.R = 10;
console.log(circle2.R);
console.log(circle2.getArea());

示例运行效果
在这里插入图片描述


总结

  • 看起来跟其他面向对象的后端语言真像
  • 这次没有用tsc命令生成js对比,有兴趣的可以自己生成对比看看
    纯粹的笔记备忘,uping!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/579714.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用poi将pptx文件转为图片详解

目录 项目需求 后端接口实现 1、引入poi依赖 2、代码编写 1、controller 2、service层 测试出现的bug 小结 项目需求 前端需要上传pptx文件&#xff0c;后端保存为图片&#xff0c;并将图片地址保存数据库&#xff0c;最后大屏展示时显示之前上传的pptx的图片。需求看上…

sheng的学习笔记-【中】【吴恩达课后测验】Course 4 -卷积神经网络 - 第四周测验

课程4_第4周_测验题 目录 第一题 1.面部验证只需要将新图片与1个人的面部进行比较&#xff0c;而面部识别则需要将新图片与K个人的面部进行比较。 A. 【  】正确 B. 【  】错误 答案&#xff1a; A.【 √ 】正确 第二题 2.在人脸验证中函数d(img1,img2)起什么作用&a…

如何使用宝塔面板+Discuz+cpolar内网穿透工具搭建可远程访问论坛服务

文章目录 前言1.安装基础环境2.一键部署Discuz3.安装cpolar工具4.配置域名访问Discuz5.固定域名公网地址6.配置Discuz论坛 前言 Crossday Discuz! Board&#xff08;以下简称 Discuz!&#xff09;是一套通用的社区论坛软件系统&#xff0c;用户可以在不需要任何编程的基础上&a…

少走十年弯路!!!webpack详解

webpack是什么&#xff1f;&#xff1f; 本质上&#xff0c;webpack 是一个用于现代 JavaScript 应用程序的 静态模块打包工具。当 webpack 处理应用程序时&#xff0c;它会在内部从一个或多个入口点构建一个 依赖图(dependency graph)&#xff0c;然后将你项目中所需的每一个模…

LSTM的记忆能力实验

长短期记忆网络&#xff08;Long Short-Term Memory Network&#xff0c;LSTM&#xff09;是一种可以有效缓解长程依赖问题的循环神经网络&#xff0e;LSTM 的特点是引入了一个新的内部状态&#xff08;Internal State) 和门控机制&#xff08;Gating Mechanism&#xff09;&am…

禁止选择当天及以后的时间

这篇文章编辑与2023.12.26&#xff0c;所以可以选择的时间为包含2023.12.25以及之前的时间 实现思路&#xff1a;1、获取当天时间的年月日&#xff0c;然后默认时分秒为23&#xff1a;59&#xff1a;59&#xff1b; 2、获取到时间转为时间戳减去 一天&#xff08;1*24*3600*10…

MySQL部署之yum安装

目录 MySQL 清理环境 下载yum源的rpm包 关闭防火墙 关闭selinux 安装必要的软件包 初始化 获取临时密码并修改密码 MySQL https://www.mysql.com //mysql官网 yum安装步骤 yum安装 清理环境 [rootmysql ~]# yum erase mariadb mariadb-server mariadb-libs mariadb-de…

智能三维数据虚拟现实电子沙盘

一、概述 易图讯科技&#xff08;www.3dgis.top&#xff09;以大数据、云计算、虚拟现实、物联网、AI等先进技术为支撑&#xff0c;支持高清卫星影像、DEM高程数据、矢量数据、无人机倾斜摄像、BIM模型、点云、城市白模、等高线、标高点等数据融合和切换&#xff0c;智能三维数…

Ubuntu20.04配置

新建用户 sudo adduser username给用户sudo权限 新创建的用户没有root权限&#xff0c;我们执行以下命令给用户sudo权限 sudo usermod -a -G adm username sudo usermod -a -G sudo username删除用户 删除用户及用户所有文件&#xff08;/home/username/路径下的所有文件&a…

centos 扩充swap分区

安装操作系统的时候默认配置没改&#xff0c;导致安装数据库软件的时候提示swap太小&#xff0c;操作记录如下&#xff1a; 1、查看当前的分区情况 free -m total used free shared buff/cache available Mem: 3952 82…

【WSL2】安装和配置ubuntu

文章目录 1. 安装WSL22. 安装ubuntu2.1. 通过Microsoft Store2.1. 通过命令行 3. ubuntu的使用3.1. 创建管理员root账户3.2. 换源3.3. 安装图形化界面 1. 安装WSL2 在控制面板 - 程序 - 程序与功能中点击启用或关闭Windows功能&#xff0c;选择 虚拟机平台适用于Linux的Window…

<JavaEE> 协议格式 -- 传输层协议 TCP

目录 一、TCP协议格式长啥样&#xff1f; 二、TCP协议属性解释 1&#xff09;源端口号/目的端口号 2&#xff09;序号/确认序号 3&#xff09;TCP报头长度 4&#xff09;保留位 5&#xff09;标志位 6&#xff09;窗口大小 7&#xff09;校验和 8&#xff09;紧急指针…

GrayLog日志平台的基本使用-ssh接入Dashboards展示

这里使用的版本为graylog4.2.10 1、一键安装graylog4.2.10&#xff0c;解压zip包&#xff0c;执行脚本就行 链接&#xff1a;https://pan.baidu.com/s/11U7GpBZ1B7PXR8pyWVcHNw?pwdudln 提取码&#xff1a;udln 2、通过rsyslog采集系统日志&#xff0c;具体操作参考前面文…

R语言【base】——system.file() 在软件包等中查找文件的完整文件名。

Package base version 4.3.2 Parameters system.file(..., package "base", lib.loc NULL,mustWork FALSE) 参数【...】&#xff1a;字符向量&#xff0c;指定某个软件包中的子目录和文件。默认情况下&#xff0c;没有值则返回软件包的根目录。不支持通配符。 …

搭建maven私服

maven maven简介 什么是maven&#xff1f; Maven这个单词来自于意第绪语&#xff08;犹太语&#xff09;&#xff0c;意为知识的积累。 Maven项目对象模型(POM)&#xff0c;可以通过一小段描述信息来管理项目的构建&#xff0c;报告和文档的项目管理工具软件。 Maven 除了以…

vue3实现pinia仓库状态持久化

使用 pinia-plugin-persistedstate 实现pinia仓库状态持久化 安装 pnpm i pinia-plugin-persistedstate # or npm i pinia-plugin-persistedstate # or yarn add pinia-plugin-persistedstatemain.ts引入 import persist from pinia-plugin-persistedstate const app creat…

后端业务架构文档模板

文章目录 1 业务理解1.1 项目目标1.2 业务术语1.3 系统边界1.4 关键领域模型 2 系统架构图2.1 分层架构图2.2 系统链路图2.3 系统部署图 3 关键流程3.1 关键流程13.1.2 流程简述3.1.2 业务流程图3.1.3 安全性3.1.3.1 资金安全3.1.3.2 内容安全 3.1.4 稳定性3.1.4.1 接口依赖3.1…

主流级显卡的新选择,Sparkle(撼与科技)Intel Arc A750兽人体验分享

▼前言 对于玩家而言&#xff0c;英特尔独显的出现不仅打破了NVIDIA与AMD双雄天下的局面&#xff0c;而且旗下的Arc A系列显卡还拥有不俗的做工性能以及颇具优势的价格&#xff0c;无论是升级或者是装新机都非常合适。如果要在Arc A系列当中选一个性能不俗&#xff0c;能够满足…

aws-sdk-cpp通过bazel构建的S3_client轮子

感觉时间过得很快&#xff0c;又是很久没有更新了 哎&#xff0c;主要原因还是很久都没有学什么东西了&#xff0c;进入社会后不知不觉间倦怠了许多 没什么办法&#xff0c;上班了之后做的很多东西都是调用api&#xff0c;越来越像一个工具人了&#xff0c;虽然说本身也大差不…

python区块链简单模拟【04】

区块链网络是去中心化的&#xff0c;区块链不是基于一个中心节点产生的&#xff0c;而是由很多去中心化的节点一起参与维护的 我们要实现一个简单地去中心化网络&#xff0c;该模拟实验&#xff0c;多个节点可以运行在同一个计算机上&#xff0c;只是每个节点使用了不同的本地端…