TS常用类型

原始类型使用

// 原始类型使用
let age: number = 18let myName: string = '前端'let isLoding: boolean = falselet a: null = nulllet b: undefined = undefinedlet s:symbol = Symbol()

数组类型使用

// 数组类型的两种写法// 写法一
let numbers: number[] = [1, 2, 3] // 数值类型数组
// 写法二
let strings: Array<string> = ['a', 'b'] // 不推荐写法,懂这种写法即可

联合类型使用

// 联合类型// 数组中既有number类型又有string类型
const arr: (number | string)[] = [1, 'a']// 不添加小括号,表示arr1既可以是number类型也可以是string[]类型
const arr1: number | string[] = 123;

类型别名(自定义类型)

// 类型别名(自定义类型)type CustomArray = (number | string)[]const arr: CustomArray = [1, 'a']
const arr1: CustomArray = ['111']

函数类型(单独指定参数和返回值的类型和同时指定参数和返回值的类型)

// 单独指定参数和返回值的类型
// 写法一
function add(num1: number, num2: number): number {// (num1: number, num2: number)是指定参数类型// 紧跟后面的: number是指定返回值的类型return num1 + num2
}
console.log(add(1, 2));// 写法二
const minus = (num1: number, num2: number): number => {return num2 - num1
}
console.log(minus(1, 2));// 同时指定参数和返回值的类型
// 1. 当函数作为表达式时,可以通过类似箭头函数形式的语法来为函数添加类型
// 2. 这种形式只适用于函数表达式
const add1: (num1: number, num2: number) => number = (num1, num2) => {return num1 + num2
}console.log(add1(11, 22));

void类型

// void类型
// 如果函数没有返回值,那么函数的返回值类型为voidfunction greet(name: string): void {console.log(name)
}greet('jack')

函数可选参数

// 函数可选参数function mySlice(start?: number, end?: number): void {console.log(start, end);
}mySlice();
mySlice(1);
mySlice(1, 3);

对象类型

// 对象类型let person: {name: stringage: numbersayHi(): voidgreet: (name: string) => void
} = {name: 'jack',age: 18,sayHi() { },greet: (name) => { }
}

对象可选属性

// 对象可选属性function myAxios(config: { url: string; method?: string }) {console.log(config)
}myAxios({ url: '' })

接口(interface)

// 接口(interface)interface IPerson {name: stringage: numbersayHi(): void
}let person: IPerson = {name: '前端',age: 35,sayHi: () => { }
}

接口(interface)和类型别名(type)的对比

/*** 接口(interface)和类型别名(type)的对比* * 相同点:都可以给对象指定类型* 不同点:*      1. 接口,只能为对象指定类型*      2. 类型别名,不仅可以为对象指定类型,实际上可以为任意类型指定别名* */// 接口
// interface IPerson {
//     name: string
//     age: number
//     sayHi(): void
// }// 类型别名
type IPerson = {name: stringage: numbersayHi(): void
}let person: IPerson = {name: '前端',age: 35,sayHi: () => { }
}

接口继承

// 接口继承interface Point2D {x: numbery: number
}// 这样写麻烦有重复代码
// interface Point3D {
//     x: number
//     y: number
//     z: number
// }// 使用继承  实现复用
interface Point3D extends Point2D {z: number
}const p3: Point3D = {x: 1,y: 2,z: 3
}

元组(场景:1. 在地图中,使用经纬度坐标来标记位置信息 2. 确切地知道包含多少索引以及类型时使用)

// 元组(场景:在地图中,使用经纬度坐标来标记位置信息)// 不严谨,因为该类型number[]的数组中可以出现任意多个数字
// const position: number[] = [39, 11, 1, 2, 3]// 更好的方式:元组(Tuple)
const position: [number, string] = [3, '4']

类型推论

// 类型推论(声明变量但没有初始化值,此时必须手动添加类型)
// 注意:能省略类型注解的地方就省略,充分利用TS类型推论的能力,提升开发效率
// 如果不知道类型,可以通过鼠标放在变量名称上,利用VSCode的提示来查看类型let age = 18
// 类型保护机制也是存在的, 因此会报错
// age = ''// 函数也是可以自动推论, 建议参数必须添加类型
function add(num1: number, num2: number) {return num1 + num2
}add(1, 3)

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

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

相关文章

Spring企业开发核心框架

文章目录 Spring企业开发核心框架一、框架前言1. 总体技术体系2. 框架概念和理解 二、Spring Framework简介1. Spring 和 SpringFramework2. SpringFramework主要功能模块3. SpringFramework 主要优势 三、Spring IoC 容器概念1. 组件和组件管理概念2. Spring IoC容器和容器实现…

ALS-运动系统解构

角色握持 角色蓝图&#xff1a;将物体绑在手上 动作蓝图&#xff1a; 将握持动画截取一帧&#xff08;explicit time时间写好&#xff09; 角色替换 在原人物模型下面加一个骨骼体&#xff08;先不用添加模型&#xff09;&#xff0c;重命名为bodymesh AI使用流程 新建一…

品牌如何在线上打造“社交货币”?媒介盒子揭秘

品牌的社交货币&#xff0c;是品牌与消费者的共识身份铸造器。竹筒奶茶、Keep奖牌这类的实体产品作为社交货币&#xff0c;每每能够引爆社交平台&#xff0c;那么品牌能否通过线上平台打造“社交货币”呢&#xff1f;接下来就让媒介盒子和大家聊聊。 一、社交货币是什么 社交货…

6.Nacos

1.单机部署 1.1 官网 https://nacos.io/zh-cn/index.html https://github.com/alibaba/Nacos 1.2.版本说明 https://github.com/alibaba/spring-cloud-alibaba/wiki/%E7%89%88%E6%9C%AC%E8%AF%B4%E6%98%8E 1.3.下载地址 https://github.com/alibaba/nacos/releases/tag/2.2.…

小区跑腿服务

社区跑腿服务是指在社区范围内为居民提供各种便利的服务&#xff0c;包括购物代劳、快递代取、家政服务等。 这种服务的出现&#xff0c;满足了居民生活中诸多需求&#xff0c;受到了广泛的欢迎和认可。 首先&#xff0c;社区跑腿服务方便了居民的日常生活。 居民无需亲自前…

Unity 数据存储PlayerPrefs管理类

Unity 数据存储PlayerPrefs管理类 Unity 数据存储PlayerPrefs管理类实现存取实体类对象存储格式为Json格式Singleton.csInventoryEntity.csDataManager.cs用法如下 Unity 数据存储PlayerPrefs管理类 实现存取实体类对象 存储格式为Json格式 源码如下&#xff1a; Singleton…

克魔助手工具下载、注册和登录指南

下载安装克魔助手 摘要 本文介绍了如何下载安装克魔助手工具&#xff0c;以及注册和登录流程。通过简单的步骤&#xff0c;用户可以轻松获取并使用该工具&#xff0c;为后续的手机应用管理操作做好准备。 引言 克魔助手是一款免费的手机管理工具&#xff0c;通过该工具用户…

2023年第十六届山东省职业院校技能大赛高职组“应用软件系统开发”赛项样题

第十六届山东省职业院校技能大赛 高职组“应用软件系统开发”赛项样题 目录 一&#xff0e;竞赛须知 二&#xff0e;竞赛任务 模块一&#xff1a;系统需求分析&#xff08;25分&#xff09; 模块三&#xff1a;系统部署测试&#xff08;20分&#xff09; 需要竞赛源码或资…

Linux常用压缩和解压缩命令

在Linux系统中&#xff0c;有多种压缩和解压缩命令可供使用。以下是一些常用的压缩和解压缩命令的详细解释&#xff1a; 压缩命令 1. gzip 压缩文件&#xff1a; gzip file 这将压缩file并生成一个名为file.gz的压缩文件。 保留原始文件&#xff1a; gzip -c file > fil…

微服务的调用使用

在微服务架构中&#xff0c;不同的微服务之间通常通过网络进行调用和通信。常见的方式包括&#xff1a; 1. **HTTP/HTTPS调用&#xff1a;** 微服务可以通过HTTP或HTTPS协议进行调用。使用HTTP请求方法&#xff08;如GET、POST、PUT、DELETE&#xff09;来执行操作&#xff0c…

【AUTOSAR OS】了解AUTOSAR操作系统基本概念(1)--任务

目录 前言 一、任务Task 什么是“基础任务”和“扩展任务”?以及他们适用于什么场景?

文章解读与完整程序——《考虑“源-荷-储”协同互动的主动配电网优化调度研究》

摘要&#xff1a;伴随智能电网的建设和清洁能源的开发利用,配电网中的负荷类型呈现多元化发展,分布式电源、可控负荷、储能等资源的增加让单向潮流的传统配电网逐渐向双向潮流的主动配电网结构转变。在能源结构转变的同时,清洁能源自身的随机性和波动性给配电网带来了更大的调峰…

2023.12.25 关于 Redis 数据类型 Hash 常用命令、内部编码、应用场景

目录 Hash 数据类型 Hash 操作命令 HSET HGET HEXISTS HDEL HKEYS HVALS HGETALL HMGET HLEN HSETNX HINCRBY HINCRBYFLOAT HSTRLEN Hash 编码方式 理解什么是压缩 Hash 实际应用 Cache 缓存 Hash 数据类型 整体上来说 Redis 是键值对结构&#xff0c;其中 …

使用docker创建自己的Android编译容器

文章目录 背景步骤1.创建Dockerfile2.编写Dockerfile指令3.编译4.使用 背景 每次拿到新机器或者系统重装&#xff0c;最麻烦的就是各种环境配置&#xff0c;最近学习了一下docker的知识&#xff0c;用dockerfile创建一个Android编译容器&#xff0c;这样就不用每次都吭哧吭哧的…

python 通过(三维坐标)生成(三维曲面地形图)和(圆柱曲面地形图)

有需要源代码CSDN私信我 注意 python项目移植前要进行以下操作 1.python项目备份 2.生成requirements.txt的库文件 以pycharm为例&#xff0c;生成Python项目所需要的依赖库/包文档&#xff1a;requirements.txt_如何将pycharm项目安装的库文件导出为requirement.txt-CSDN博…

揭秘千巡翼X4卫星通讯无人机

揭秘千巡翼X4卫星通讯无人机 在无人机作业的时候&#xff0c;经常遇到这些异常场景&#xff0c;例如通信网络中断&#xff0c;强干扰&#xff0c;导致无人机无法与飞手通信等。而这些给无人机作业带来三大难题&#xff1a; 难题1&#xff0c;山区作业时通信中断&#xff0c;飞…

【前端框架】NPM概述及使用简介

什么是 NPM npm之于Node,就像pip之于Python,gem之于Ruby,composer之于PHP。 npm是Node官方提供的包管理工具,他已经成了Node包的标准发布平台,用于Node包的发布、传播、依赖控制。npm提供了命令行工具,使你可以方便地下载、安装、升级、删除包,也可以让你作为开发者发布…

教你如何为自己的个人网站选择SSL证书?

在互联网飞速发展的今天&#xff0c;各类互联网技术和工具日新月异&#xff0c;越来越多的人都可以低技术门槛来开办自己的独立博客、自媒体、个人站点等通过这些平台来发布自己想要公开的资讯&#xff0c;或者以此来提供相关的网络服务以及展示、销售自己的作品、商品。殊不知…

Cookie的详解使用(创建,获取,销毁)

文章目录 Cookie的详解使用&#xff08;创建&#xff0c;获取&#xff0c;销毁&#xff09;1、Cookie是什么2、cookie的常用方法3、cookie的构造和获取代码演示SetCookieServlet.javaGetCookieServlet.javaweb.xml运行结果如下 4、Cookie的销毁DestoryCookieServletweb.xml运行…

Swift 周报 第四十二期

文章目录 前言新闻和社区苹果 CEO 库克透露接班计划&#xff0c;希望继任者来自公司内部消息称苹果自研 5G 调制解调器开发再“难产”&#xff0c;将推迟到 2026 年 提案正在审查的提案 Swift论坛推荐博文话题讨论关于我们 前言 本期是 Swift 编辑组整理周报的第四十二期&…