TypeScript面向对象编程、Math与String对象详解

TypeScript 是构建大型应用的重要工具,丰富的面向对象特性和内置对象支持让开发更高效。

TypeScript 面向对象编程

在 TypeScript 中,类是面向对象编程的核心,它包含属性、构造函数和方法。

class Person {name: string;age: number;constructor(name: string, age: number) {this.name = name;this.age = age;}greet(): string {return `Hello, my name is ${this.name}, and I am ${this.age} years old.`;}
}const john = new Person('John', 30);
console.log(john.greet());
特性描述
使用 class 定义
构造函数使用 constructor 定义
方法定义类的行为
继承

通过继承,子类可以复用父类的属性和方法,并实现代码复用。

class Employee extends Person {position: string;constructor(name: string, age: number, position: string) {super(name, age); // 调用父类的构造函数this.position = position;}work(): string {return `${this.name} is working as a ${this.position}.`;}
}const jane = new Employee('Jane', 28, 'Developer');
console.log(jane.greet());
console.log(jane.work());
特性描述
继承使用 extends 关键字
super 调用调用父类的构造函数或方法
抽象类

抽象类是不能被实例化的类,通常作为其他类的基类。

abstract class Animal {abstract makeSound(): void; // 抽象方法move(): void {console.log('Moving...');}
}class Dog extends Animal {makeSound(): void {console.log('Woof!');}
}const dog = new Dog();
dog.makeSound();
dog.move();
特性描述
抽象类使用 abstract 定义
抽象方法必须在子类中实现
接口

接口用于定义对象的结构或类的约束。

interface Shape {area(): number;
}class Circle implements Shape {radius: number;constructor(radius: number) {this.radius = radius;}area(): number {return Math.PI * this.radius ** 2;}
}const circle = new Circle(10);
console.log(circle.area());
特性描述
接口使用 interface 定义
实现接口使用 implements 关键字

Math 对象

Math 对象提供了一系列数学运算和常量。

常用方法
方法功能说明
Math.abs(x)返回 x 的绝对值
Math.max(a, b, ...)返回参数中的最大值
Math.min(a, b, ...)返回参数中的最小值
Math.pow(x, y)返回 x 的 y 次幂
Math.sqrt(x)返回 x 的平方根
Math.random()返回 [0, 1) 的随机数
Math.round(x)返回四舍五入后的整数
Math.floor(x)返回小于等于 x 的最大整数
Math.ceil(x)返回大于等于 x 的最小整数
常用属性
属性描述
Math.PI圆周率 π
Math.E自然对数的底数 e
Math.LN22 的自然对数
Math.SQRT22 的平方根

示例代码

console.log(Math.abs(-10));      // 10
console.log(Math.max(3, 5, 1)); // 5
console.log(Math.random());     // 随机数
console.log(Math.PI);           // 3.141592653589793

String 对象

String 对象提供了操作字符串的方法和属性。

常用方法
方法功能说明
str.toUpperCase()转为大写
str.toLowerCase()转为小写
str.substring(a, b)截取 [a, b) 范围的子字符串
str.indexOf(substr)查找子字符串首次出现的位置
str.includes(substr)判断字符串是否包含某子字符串
str.split(separator)按分隔符拆分字符串
str.replace(a, b)替换字符串中的某部分
常用属性
属性描述
str.length字符串的长度

示例代码

const str = 'TypeScript is awesome!';
console.log(str.length);            // 21
console.log(str.toUpperCase());     // TYPESCRIPT IS AWESOME!
console.log(str.includes('awesome')); // true
console.log(str.split(' '));        // ['TypeScript', 'is', 'awesome!']

凡是过去,皆为序章;凡是未来,皆有可期。

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

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

相关文章

Linux操作系统——多线程互斥

目录 一、前言 二、线程互斥 三、多线程访问临界资源所导致的问题 四、Mutex互斥量 1、锁的接口及其使用 定义一个锁(造锁) 初始化锁(改锁) 摧毁锁 上锁 解锁 锁的使用 五、锁的宏初始化 六、锁的原理 七、C封装互斥锁 八、可重入与线程…

conda指定路径安装虚拟python环境

DataBall 助力快速掌握数据集的信息和使用方式,会员享有 百种数据集,持续增加中。 需要更多数据资源和技术解决方案,知识星球: “DataBall - X 数据球(free)” -------------------------------------------------------------…

鸿蒙 ArkUI实现地图找房效果

常用的地图找房功能,是在地图上添加区域、商圈、房源等一些自定义 marker,然后配上自己应用的一些筛选逻辑构成,在这里使用鸿蒙 ArkUI 简单实现下怎么添加区域/商圈、房源等 Marker. 1、开启地图服务 在华为开发者官网,注册应用&…

Kubernetes开发环境minikube | 开发部署apache tomcat web单节点应用

minikube是一个主要用于开发与测试Kubernetes应用的运行环境 本文主要描述在minikube运行环境中部署J2EE tomcat web应用 minikube start --force minikube status 如上所示,在Linux中启动minikube运行环境 service docker start docker version service docker …

Kafka为什么要放弃Zookeeper

1.Kafka简介 Apache Kafka最早是由Linkedin公司开发,后来捐献给了Apack基金会。 Kafka被官方定义为分布式流式处理平台,因为具备高吞吐、可持久化、可水平扩展等特性而被广泛使用。目前Kafka具体如下功能: 消息队列,Kafka具有系统解耦、流…

KUKA机器人如何修改程序并下载到机器人控制器中?

KUKA机器人如何修改程序并下载到机器人控制器中? 如下图所示,首先将使用的网卡的IP地址设置为自动获得, 打开workvisual软件,点击搜索,正常情况下可以搜索到项目文件,选中后双击进入, 如下图所示,此时,workvisual会自动从机器人控制器中下载项目文件到电脑上,耐心等待…

51单片机——8*8LED点阵

LED 点阵的行则为发光二极管的阳极,LED 点阵的列则为发光二极管的阴极 根据 LED 发光二极管导通原理,当阳极为高电平,阴极为低电平则点亮,否则熄灭。 因此通过单片机P0口可控制点阵列,74HC595可控制点阵行 11 脚 SR…

《Rust权威指南》学习笔记(三)

泛型和trait 1.泛型可以提高代码的复用能力,泛型是具体类型或其他属性的抽象代替,可以看成是一种模版,一个占位符,编译器在编译时会将这些占位符替换成具体的类型,这个过程叫做“单态化”,所以使用泛型的…

CentOS: RPM安装、YUM安装、编译安装(详细解释+实例分析!!!)

目录 1.什么是RPM 1.1 RPM软件包命名格式 1.2RPM功能 1.3查询已安装的软件:rpm -q 查询已安装软件的信息 1.4 挂载:使用硬件(光驱 硬盘 u盘等)的方法(重点!!!) 1…

【玩转全栈】----Django连接MySQL

阅前先赞,养好习惯! 目录 1、ORM框架介绍 选择建议 2、安装mysqlclient 3、创建数据库 4、修改settings,连接数据库 5、对数据库进行操作 创建表 删除表 添加数据 删除数据 修改(更新)数据: 获取数据 1、OR…

Supermaven 加入 Cursor:AI 编码新篇章

引言 2024 年 11 月 11 日,我们迎来了一个激动人心的时刻——Supermaven 正式加入 Cursor! 这一合作标志着 AI 编程工具进入了一个新的发展阶段,为开发者提供更智能、更高效的编码体验。本文将带您了解此次合并的背景、意义以及未来的发展方…

CM3/4启动流程

CM3/4启动流程 1. 启动模式2. 启动流程 1. 启动模式 复位方式有三种:上电复位,硬件复位和软件复位。 当产生复位,并且离开复位状态后,CM3/4 内核做的第一件事就是读取下列两个 32 位整数的值: 从地址 0x0000 0000 处取…

限时特惠,香港服务器,低至53元/年

家人们谁懂啊!香港服务器这价格简直逆天了,居然比内地的还便宜!就拿阿里云来说,人家最低配置的服务器,价格都很难做到这么亲民。 最低配的就不说了,2 核 4G 的配置,应对日常业务稳稳当当&#x…

【STM32】点击下载按钮时,提示No ST-LINK detected

00. 目录 文章目录 00. 目录01. 问题描述02. 问题分析03. 问题解决04. 问题验证05. 附录 01. 问题描述 点击下载按钮时,提示No ST-LINK detected。 02. 问题分析 电脑没有检测到有ST-LINK设备,一般是ST-LINK驱动的问题。 03. 问题解决 \1. 先确保ST…

SAP BC 同服务器不同client之间的传输SCC1

源配置client不需要释放 登录目标client SCC1

【前端开发常用网站汇总-01】

1、仿mac界面代码截图 https://codeimg.io/?utm_sourceappinn.com 2、可视化大屏汇总(在线Demo) https://www.xiongze.net/viewdata/index.html 3、在线Photoshop(实现简单P图) https://ps.gaoding.com/#/ 4、在线生成ico图标(png转icon文件) https://www.bitbug.net/in…

win10 VS2019上libtorch库配置过程

win10 VS2019上libtorch库配置过程 0 引言1 获取libtorch2 在VS上配置使用libtorch库3 结语 0 引言 💻💻AI一下💻💻   libtorch库是一个用于深度学习的C库,是PyTorch的官方C前端。它提供了用于构建和训练深度学习模…

Unity学习笔记(六)使用状态机重构角色移动、跳跃、冲刺

前言 本文为Udemy课程The Ultimate Guide to Creating an RPG Game in Unity学习笔记 整体状态框架(简化) Player 是操作对象的类: 继承了 MonoBehaviour 用于定义游戏对象的行为,每个挂载在 Unity 游戏对象上的脚本都需要继承自 MonoBehaviour&#x…

4. 多线程(2)---线程的状态和多线程带来的风险

文章目录 前言1. 线程的状态1.1. 观察线程的所有状态1.2. 通过不同线程的状态,来调试代码,观察现象 2. 多线程的带来的风险---线程不安全2.1.观察线程不安全的现象2.2 线程不安全的原因2.3.线程不安全的原因 前言 上一篇博客我们学习了,线程…

UE5失真材质

渐变材质函数:RadialGradientExponential(指数径向渐变) 函数使用 UV 通道 0 来产生径向渐变,同时允许用户调整半径和中心点偏移。 用于控制渐变所在的位置及其涵盖 0-1 空间的程度。 基于 0-1 的渐变中心位置偏移。 源自中心的径…