TypeScript核心

常用操作方式

1、类型推断

在这里插入图片描述

ts会根据变量存放的初始值来进行变量类型限定。
如上:开始str是字符串,则此变量以后就只能存字符串值。
开发中的意义:变量分配字符串值,后期可能会书写一些字符串功能、方法等相关的操作,如果在过程中突然分配了一个数值,意味着这些针对字符串的操作都会出现错误,为了避免这种情况,ts有这种类型约束功能。
不建议书写,看起来不直观

2、类型注解

在这里插入图片描述

3、类型断言

在这里插入图片描述
程序在推断的时候认为有可能是 undefined,而 undefined * 5 就会变成 NaN

假如确定里面的值是必然有值大于2,可以通过类型断言的方式来设置,操作如下:

在这里插入图片描述

语法:变量 as 类型 或者 <类型>变量

4、基础类型和联合类型
let v1: string = 'abc'
let v2: number = 10
let v3: boolean = true
let nu: null = null
let un: undefined = undefined
any类型

any 表示任意类型,设置后相当于关闭了TS的类型检查,不建议使用;如果声明变量不指定类型,则TS解析器会自动判断变量为 any

let an: any
let s: string
s = an

any类型变量可以赋值给任意变量
在这里插入图片描述

unknown类型

unknown 表示未知类型的值,实际上就是一个类型安全的any,unknown类型的变量,不能直接赋值给其他变量

let unk: unknown
unk = "hello"
let s: string
if(typeof unk === "string") {s = unk
}
// 或者使用类型断言
s = unk as string
s = <string>unk

联合类型,希望值有可能被分配为字符串或null

let v4: string | null = null

null默认是可以分配给其他任意类型的

除了限定类型以外还可以做一些具体值的限定

在这里插入图片描述

let v5: 1 | 2 | 3 = 2
5、对象

{ } 用来指定对象中可以包含哪些属性

let a: {name: string, age?: number}
a = {name: "张三", age: 18}

[propName: string]: any表示任意类型的属性

let b: {name: string, [propName: string]: any}
b = {name: "张三", age: 18, gender: "男"}

设置函数结构的类型声明

let c (a: number, b: number) => number
6、数组、元组、枚举
数组

在这里插入图片描述

由数值组成的数组

let arr: number[] = [1, 2, 3]

let arr: Array<number> = [1, 2, 3]
元组

元组也可以存储多个数据,但它限定了存储的数据个数及每个数据的类型(固定长度的数组)

在这里插入图片描述
必须都匹配上

let t: [number, string, number] = [1, 'abc', 2]

希望某个值可选,在类型后加?

let t: [number, string, number?] = [1, 'abc']
枚举

枚举需要使用关键字enum,后面书写要声明的枚举类型名称,接着大括号里写要使用的数据

在这里插入图片描述

把所有可能的情况都列举出来,设置多个值,结果在多个值之间选择的时候适合用枚举

enum Gender {Male,Female
}
let r: {name: string, gender: Gender}
r = {name: "张三",gender: Gender.Male
}
7、函数

void类型 只能被分配 undefined 值(严格模式)

一般在使用的时候很少会给变量去赋这个值,通常用在函数上,比如函数没有返回值的时候默认就是 undefined

在这里插入图片描述

在配置的时候配置了不允许由 any 的情况,可以给参数分配类型

function MyFun (a: number, b: string) {return a + b
}

可以给返回值分配类型

在这里插入图片描述

当函数有返回值的时候不能写 void ,要写一个具体类型

function MyFun (a: number, b: string): string {return a + b
}
function MyFun (a: number, b: string): number {return 1
}

当类型与返回值不一致时也会报错

在这里插入图片描述

可以把参数设置成可选,注意:可选参数要放在必选参数之后

function MyFun (a = 10, b: string, c?: boolean, ...rest: number[]): number {return 1
}
const f = MyFun(10, 'abc', true, 1, 2, 3)
8、接口

通常用来进行一个对象的定义

interface Obj {name: string,age: number
}
const obj: Obj = {name: 'abc',age: 18
}
9、类型别名
type Username = string | number
let username: Username = 'jack'type myType = 1 | 2 | 3 | 4 | 5
let k: myType
10、泛型
function myFn (a: number, b: number): number[] {return [a, b]
}

通过这个函数想处理一组字符串值、一组布尔值或者其他各种各样的值,做成一个比较通用的函数

function myFn<T> (a: T, b: T): T[] {return [a, b]
}
myFn<number>(1, 2)
myFn<string>('abc', 'def')

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

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

相关文章

【算法/学习】前缀和差分

前缀和&&差分目录 1. 前缀和的概念及作用 &#x1f308;概念 &#x1f308;用途 &#x1f319;一维前缀和 &#x1f319;二维前缀和 2. 差分的概念及用途 &#x1f308;概念&#xff1a; &#x1f308;用途 &#x1f319;一维差分 &#x1f319;二维差分 1. …

JVM面试题之内存区域、类加载篇

文章目录 引言JVM是什么&#xff1f;1. JVM内存划分2. 对象如何在JVM中创建2.1 内存分配2.2 创建对象步骤 3. JVM类加载流程3.1 双亲委派 总结 引言 Java开发人员在面试中基本都会被问到关于JVM的问题。想要成为高级的开发人员&#xff0c;了解和学习Java运行的原理和JVM是必不…

数据结构——二叉树性质

性质1:在二叉树的第i层上至多有2^(i-1)个结点(i>1)。 这个性质很好记忆&#xff0c;观察一下图6-5-5。 第一层是根结点&#xff0c;只有一个&#xff0c;所以2^(1-1)2^01。 第二层有两个&#xff0c;2^(2-1)22。 第三层有四个&#xff0c;2^(3-1)2^24。 第四层有八个&am…

【年报文本分析】Python+Selium获取互动易平台投资者提问与上市公司回应文本数据

目录 序言excel文件准备全部代码 序言 互动易平台链接&#xff1a;https://irm.cninfo.com.cn/views/interactiveAnswer 需要提前下载好三个库&#xff0c;都可以用pip install轻松下载&#xff0c;稍微麻烦点儿的是需要去下载个对应版本的chromedriver.exe驱动&#xff0c;放…

路由表与IP数据报的转发

前言&#xff1a;本博客仅作记录学习使用&#xff0c;部分图片出自网络&#xff0c;如有侵犯您的权益&#xff0c;请联系删除 一、相关知识 1、路由类型 路由表中有3类路由&#xff1a;直连路由、静态路由、动态路由 直连路由&#xff1a;一般指去往路由器接口直接连接网络的…

mysql中You can’t specify target table for update in FROM clause错误

mysql中You can’t specify target table for update in FROM clause错误 You cannot update a table and select directly from the same table in a subquery. mysql官网中有这句话&#xff0c;我们不能在一个语句中先在子查询中从某张表查出一些值&#xff0c;再update这张表…

【ffmpeg命令入门】视频剪切,倍速与倒放

文章目录 前言1. 视频剪切2. 视频倍速公式说明例子 3. 视频倒放总结 前言 在视频编辑中&#xff0c;剪切、倍速和倒放是常见的操作&#xff0c;能够帮助我们调整视频的长度、播放速度以及播放顺序。掌握 FFmpeg 命令中的相关参数和用法将使视频处理变得更加高效。在这篇文章中…

pytest使用

主要技术内容 1.pytest设计 接口测试 框架设想 common—公共的东西封装 1.request请求 2.Session 3.断言 4.Log 5.全局变量 6.shell命令 ❖ config---配置文件及读取 ❖ Log— ❖ payload—请求参数—*.yaml及读取 ❖ testcases—conftest.py; testcase1.py…….可…

2024年【熔化焊接与热切割】考试题及熔化焊接与热切割考试总结

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 熔化焊接与热切割考试题是安全生产模拟考试一点通生成的&#xff0c;熔化焊接与热切割证模拟考试题库是根据熔化焊接与热切割最新版教材汇编出熔化焊接与热切割仿真模拟考试。2024年【熔化焊接与热切割】考试题及熔化…

vue-plugin-hiprint 打印 预览打印+静默打印

1.安装 npm install vue-plugin-hiprint npm i socket.io-client --save //为了静默打印 &#xff08;为此还需安装客户端&#xff09; 2…html页面 引入css <link rel"stylesheet" type"text/css" media"print" href"https://cdn.jsde…

创新大赛中财务预测的策略与技巧

创新大赛中财务预测的策略与技巧 前言财务预测的重要性财务预测的步骤财务预测的关键要素注意事项结语 前言 在当今快节奏、竞争激烈的商业环境中&#xff0c;创新不仅是推动企业成长的动力&#xff0c;更是衡量一个项目能否在市场中脱颖而出的关键。创新大赛作为展示这些创新成…

星耀巴黎,竞猜有礼!为运动健儿加油,让世界看见中国力量

即将高燃来袭首金荣耀&#xff0c;让我们拭目以待&#xff01; 当象征着“更快、更高、更强”的号角再次吹响&#xff0c;谁又能在这场全球瞩目的体育盛宴中&#xff0c;率先触碰那份至高无上的荣耀&#xff1f;“首金”不仅是一个国家或地区体育实力的象征&#xff0c;更是运…

1台solidworks图形工作站同时给5人一起使用

在日益发展的科技环境中&#xff0c;团队协作已成为各个行业不可或缺的一一部分。对于工程设计和图形处理领域而言&#xff0c;SolidWorks等强 大的三维建模和仿真软件成为了日常工作的重要工具。 随着团队规模的扩大和项目复杂性的增加&#xff0c;如何高效、稳定地为多人提供…

Java入门:05.Java中的数组002

通过上篇文章&#xff0c;相信大家对数组应该有了一个简单的了解&#xff0c;并对Java中的数据类型有了一个基本的认识&#xff0c;不仅如此我们还明白了怎样定义一个数组类型的变量&#xff0c;在这之后&#xff0c;让我们一起来更加深入的了解一下数组吧。 三、如何创建一个…

Axure软件新功能解析与应用技巧分享

Axure是一种用于创建原型和交互设计的软件工具&#xff0c;广泛应用于操作界面。&#xff08;UI&#xff09;和客户体验&#xff08;UX&#xff09;为了展示和测试应用程序、网站或其他数据产品的性能和操作界面&#xff0c;设计帮助产品经理、设计师和开发者制作具有交互性的原…

Ghost Buster Pro for Mac:系统优化的得力助手

Ghost Buster Pro for Mac是一款功能强大的系统优化工具&#xff0c;专为Mac用户设计&#xff0c;旨在提供全方位的系统清理、优化和维护服务。 这款软件拥有出色的垃圾清理能力&#xff0c;能够深度扫描并清除Mac上的无效目录、文件、系统日志、下载历史记录、缓存和临时文件…

每日任务:TCP/IP模型和OSI模型的区别

介绍一下TCP/IP模型和OSI模型的区别&#xff1f; OSI模型由国标准化组织提出&#xff0c;而TCP/IP模型是由美国国防部开发的&#xff1b; OSI模型由七个层次组成&#xff0c;从下到上依次为物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。而TCP/IP模型只有四层…

Text Control 控件教程:使用 .NET C# 中的二维码和条形码增强文档

QR 码和条形码非常适合为文档和 PDF 文件增加价值&#xff0c;因为它们提供轻松的信息访问、验证信息、跟踪项目和提高交互性。条形码可以弥补纸质或数字人类可读文档与网络门户或网络应用程序中的数字信息之间的差距。大多数用户都熟悉 QR 码和条形码&#xff0c;它们在许多过…

宠物空气净化器是不是智商税?靠谱的浮毛空气净化器推荐

宠物空气净化器是不是智商税&#xff1f;宠物空气净化器是否真有其效&#xff0c;是许多由于要不要买空气净化器养宠人心中的疑惑。作为呼吸科的医生&#xff0c;我深知优质的空气质量对预防呼吸系统疾病的重要性。因此&#xff0c;我建议所有有条件的家庭&#xff0c;尤其是家…

IO多路复用——select

仅一个线程、进程处理并发 IO多路转接&#xff08;复用&#xff09;之select 跨平台适用linux&#xff0c;windows 底层&#xff1a;线性表 IO多路转接&#xff08;复用&#xff09;之poll 适用linux 底层&#xff1a;线性表 IO多路转接&#xff08;复用&#xff09;之epo…