TS常见类型概述

基元类型

string、number、boolean

null和undefined

// 当用到null和undefined跟其他类型的联合类型时,多要进行一个非空的类型缩小方式
// 当开发者知道变量不会是null和undefined时,可以用'!'断言它非空
function fn(x) {return x!.toFixed
}

biginit、symbol

// biginit
let n:biginit = Biginit(100)
let n:bigint = 100n
// symbol
const str1:symbol = Symbol('abc')
const str2:symbol = Symbol('abc')

文字类型(常在联合类型中使用)

function fn(x:'left' | 'right') {}
function fn():0 | 1{}
function fn(x:Option | 'auto') {}

数组

// type[],type为任意合法类型
let arr:number[] = [1,2,3]
// Array<type>,type为任意合法类型
let arr: Array<number> = [1,2,3]

对象类型和接口

// obj为对象类型,其中可有可无的属性用问号。last为undefined和string的联合类型,使用时注意类型缩小
function fn(obj: {first: string, last?: string}) {}
// 定义对象的另外一种方式是接口;一般情况下接口都可以用类型别名的方式去定义
interface Point {x: number;y: number;
}

函数类型

// 参数和返回值都有类型注释
function fn(name: string):void {}

枚举(如果要用到一组命名常量之一)

TS独有,添加到JS运行时的内容

enum Direction {Up = 1,Down,Left,Right
}

联合类型

联合类型使用’|',注意在使用到这种类型的数据时,多数需要类型缩小

类型断言

类型断言有编译器删除,不会影响代码运行时行为
对值进行断言,在值后面加as type,或者在值的签名加<type>
类型断言只能指定更大的范围或者更小的范围,不能是交叉的情况eg: ‘abc’ as number

const dom = domcument.getElementById('main) as HTMLElement
const dom = <HTMLElement>domcument.getElementById('main)
const x = ('abc' as unknown) as number

类型别名(被反复用到的话)

type Point = {x: number;y: number;
}
type Id = number | string

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

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

相关文章

极客时间:使用本地小型语言模型运行网页浏览器应用程序。

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

二进制编辑器hexedit的安装及使用

Hexedit 同时以 ASCII 和十六进制显示文件 安装 终端输入hexedit回车&#xff0c;如果没安装&#xff0c;会提示让输入 sudo apt-get install hexedit 照着输入命令&#xff0c;安装。安装完成后&#xff0c;cd到一个有二进制文件的目录下&#xff0c;输入hexedit命令回车 再…

C语言第三十三弹---交换变量(不使用临时变量)

C语言在不使用临时变量的情况下实现变量交换 思路&#xff1a;看见交换变量&#xff0c;那么最容易考虑到的就是使用临时变量交换。如果不允许使用临时变量那么该如何考虑呢&#xff1f;使用^异或位运算(二进制位相同为0 不同为1)&#xff0c;通过利用异或运算的特性可以完成交…

集线器-交换机-路由器

1.集线器(Hub) 集线器就是将网线集中到一起的机器&#xff0c;也就是多台主机和设备的连接器。集线器的主要功能是对接收到的信号进行同步整形放大&#xff0c;以扩大网络的传输距离&#xff0c;是中继器的一种形式&#xff0c;区别在于集线器能够提供多端口服务&#xff0c;也…

从0开始学习JavaScript--构建强大的JavaScript图片库

在现代Web开发中&#xff0c;图像是不可或缺的一部分&#xff0c;而构建一个强大的JavaScript图片库能够有效地管理、展示和操作图像&#xff0c;为用户提供更丰富的视觉体验。本文将深入探讨构建JavaScript图片库的实用技巧&#xff0c;并通过丰富的示例代码演示如何实现各种功…

透过对话聊天聊网络tcp三次握手四次挥手

序 说起来网络&#xff0c;就让我想起的就是一张图。我在网上可以为所欲为&#xff0c;反正你又不能顺着网线来打我。接下来我们来详细说一下网络到底是怎么连接的。 TCP三次打招呼 首先我会用男女生之间的聊天方式&#xff0c;来举一个例子。 从tcp三次握手来说&#xff0c;…

RISCV汇编与Linux内核传参

在全志RISCV/D1设备上安装汇编器和链接器 去年笔者将openwrt-22.03系统移植到了基于全志D1/riscv64的嵌入式设备上。当时发现系统启动后&#xff0c;网络不可用&#xff1b;简单地修改/etc/config/network设备即可以正常连接有线网络。为了学习riscv ISA&#xff0c;笔者手动为…

MongoDB使用$literal获取表达式字面值

系统开发过程中&#xff0c;会有保存表达式的需求。比如保存数字或字符的字段拼接规则等。开发人员期望读取或保存这些规则时&#xff0c;不要被插入数据库或从数据库中读取规则时执行。或者保存模版时&#xff0c;也不希望讲模版中的表达式计算出结果。 mongodb的$literal方法…

点云 surface 方法总结

点云的表面方法是指通过点云数据来估计和重建物体或场景的表面几何形状。下面总结了几种常见的点云表面方法&#xff1a; 三角化&#xff1a;三角化是最常用的点云表面重建方法之一。它将点云中的点连接成三角形网格&#xff0c;从而重建出物体或场景的表面。常见的三角化算法…

基于Loki + Promtail + Grafana 搭建 Nginx 日志监控

文章目录 引言第一部分&#xff1a;Loki 简介与安装1.1 Loki 简介1.2 Loki 安装1.2.1 下载 Loki1.2.2 安装 Loki 1.3 启动 Loki 第二部分&#xff1a;Promtail 简介与安装2.1 Promtail 简介2.2 Promtail 安装2.2.1 下载 Promtail2.2.2 安装 Promtail 2.3 启动 Promtail 第三部分…

231126 刷题日报

1. 高楼扔鸡蛋 O(N*logN) 2. 698. 划分为k个相等的子集 没做出来&#xff0c;和划分两个子集不同 3. 300. 最长递增子序列 LIS petencie sorting 没看懂&#xff0c;明天看吧 4. 518. 零钱兑换 II 完全背包问题&#xff1a;每个物品数量是无限的 注意&#xff1a;dp的定义…

【刷新:重新发现商业与未来】书笔记

收获 同理心&#xff1a;站在他人角度考虑他人感受&#xff0c;他人需要什么&#xff0c;我能提供什么&#xff1b;他人可以是员工&#xff0c;家人等&#xff1b;对于员工来讲核心四件事&#xff1a;1、薪水&#xff1b;2、有结果&#xff1b;3、有成长&#xff1b;4、工作开…

openssl + ECDH + linux+开发详解(C++)

一、什么是ECDH ECDH&#xff08;Elliptic Curve Diffie-Hellman&#xff09;是一种基于椭圆曲线密码学的密钥交换协议&#xff0c;用于在通信双方之间安全地协商共享密钥。ECDH是Diffie-Hellman密钥交换协议的一种变体&#xff0c;它利用椭圆曲线上的离散对数问题&#xff0c…

微服务系列(三)--通过spring cloud zuul过滤器实现线上流量复制

思路 补充一下&#xff0c;为什么这里我会想到使用"pre"类型的过滤器实现流量复制/流量镜像。 刚开始的时候&#xff0c;参考了阿里的流量镜像实现方案&#xff1a; 配置流量复制策略&#xff0c;阿里的方案本身是对基于云原生envoy做的&#xff0c;这确实是istio原…

关于嵌入式系统一些名词的小结(ARM/CORTEX/STM32等)

Microcontroller和Microprocessor啥区别&#xff1f; Microcontroller通常包括CPU和外设在一起&#xff0c;CPU通常计算能力没那么强&#xff0c;而且比较便宜。 Microprocessor通常只包括一个计算能力很强的CPU&#xff0c;比较贵。它会连到其它外设。 CPU ARM 是ARM公司开发…

使用不平衡数据集练习机器学习

一、介绍 在当今世界&#xff0c;机器学习和人工智能几乎被广泛应用于每个领域&#xff0c;以提高绩效和结果。但如果没有数据&#xff0c;它们还有用吗&#xff1f;答案是否定的。机器学习算法严重依赖我们提供给它们的数据。我们提供给算法的数据质量在很大程度上决定了机器学…

2023年第十六届山东省职业院校技能大赛中职组“网络安全”赛项竞赛正式试题

第十六届山东省职业院校技能大赛中职组 “网络安全”赛项竞赛试题 目录 一、竞赛时间 二、竞赛阶段 三、竞赛任务书内容 &#xff08;一&#xff09;拓扑图 &#xff08;二&#xff09;A模块基础设施设置/安全加固&#xff08;200分&#xff09; &#xff08;三&#xf…

Centos 7.9 Install Docker Insecure Registry

文章目录 1. 镜像存储规划2. 安装定制 docker3. 部署 registry4. 验证镜像仓库 1. 镜像存储规划 linux LVM /dev/sdb mount dir /data【linux LVM 磁盘挂载目录】 创建两个目录 一个 docker 数据存储目录 &#xff1a;/data/docker&#xff0c;默认一般为linux为 /var/lib/d…

boomYouth

周一&#xff1a; 1. action异步写法&#xff1a; <script setup> import sonCom1 from /components/sonCom1.vue import sonCom2 from /components/sonCom2.vue import {useCountStore} from /store/counter import {useChannelStore} from /store/channel const count…

力扣打卡 1410-HTML实体解析器

Problem: 1410. HTML 实体解析器 思路 当处理 HTML 实体解析时&#xff0c;先构建一个映射&#xff0c;将特殊字符实体与它们的替换字符对应起来。 接下来&#xff0c;使用迭代的方法遍历输入的文本字符串。当遇到&字符时&#xff0c;开始检查可能的字符实体。 如果找到了…