当前位置: 首页 > news >正文

二、TS的基础类型、类型注解

TS的基础类型、类型注解

TS的基础类型

js的数据类型:

  • 基础数据类型(7个)

    boolean string number null undefined BigInt Symbol

  • 引用数据类型(1个)

    Object

变量后面多了一个注解,注解为变量限定数据类型,TS语法中不同数据的注解方式:

let num: number = 123;
let bool: boolean = false;
let str: string = 'false';let a: null = null;
let b: undefined = undefined;let c: object = {};
let d: symbol = Symbol();
let e: bigint = BigInt(92341341);let f:object = {};let g = function(a:number, b:number): number {return a+b;
}
// 长度不可变,类型确定的数组
let x: [string, number] = ['1', 2];

基础类型注解具体

布尔值

注解为大写Boolean时代表一个接口(interface)。

注解为小写boolean时代表一种数据类型。

let bool1: boolean = false;
let bool2: Boolean = false;
let bool3: boolean = Boolean(0); //显示类型转化
let bool4: boolean = new Boolean(0); //提示错误,包装类不能给boolean类型变量赋值

数字

TS与JS里所有数字都是浮点数,浮点数类型:number,都支持十进制、十六进制数、二进制、八进制字面量。

let decLiteral: number = 6;
let hexLiteral: number = 0xf00d;
let binaryLiteral: number = 0b1010;
let octalLiteral: number = 0o744;let a1: number = -0;
let a2: number = +0;
let a3: number = Infinity;

字符串

TS与JS一样,使用双引号(“ ”)、单引号(‘’)、模板字符串(``)表示string类型。

let name: string = `Gene`;
let age: number = 37;
let sentence: string = `Hello, my name is ${ name }.I'll be ${ age + 1 } years old next month.`;

数组

数组可以通过

  • 注解的形式来表示。

  • 接口的形式来表示,因为数组是对象。

let list:number[] = [1,2,3]; //数组里面的值是number
let list4: Array<number> = [1,2,3]; //接口:简单理解:这里<number>描述对象的成员的类型let list1:(number | string)[] = [1,2,3, '4']; //联合类型注解:要求数组里面的值是number或string
let list2:number[][]  = [[1,2,3]];  //数组嵌套,且内部数组中的元素被要求为number类型
let list3:(number[] | string | number)[]  = [[1,2,3], '4', 6]; //要求数组内部的成员为:number类型数组,string值,number值

Any

为那些在编程阶段还不清楚类型的变量指定一个类型(指定为任意类型)。ts类型检查器不会起作用,相当于没有用ts。

let notSure: any = 4;
notSure = '123';
notSure = [];

unknown

安全的未知类型

unknown、any赋任何值都不会报错。但使用时,unknown会报错。

Void

void与any类型相反,不表示任何类型,**只在函数没有返回值时使用。**其他情况基本不用。

function warnUser(): void {console.log("This is my warning message");
}

Null 和 Undefined

除了自己类型外,默认情况下nullundefined是所有类型的子类型

let u: undefined = undefined;
let n: null = null;
let v: void = undefined;

然而,当你指定了--strictNullChecks标记,nullundefined只能赋值给void和它们各自。

Never

never类型表示的是那些永不存在的值的类型。报错、返回错误、无限循环。

// 返回never的函数必须存在无法达到的终点
function error(message: string): never {throw new Error(message);
}// 推断的返回值类型为never
function fail() {return error("Something failed");
}// 返回never的函数必须存在无法达到的终点
function infiniteLoop(): never {while (true) {}
}

Object

object表示非原始类型,也就是除numberstringbooleansymbolnullundefinedbigint之外的类型。

let obj1: object = {a: 1, b: 2};
let obj2: object = new Object();
let obj3: object = new Number();

补充:调出tsconfig.json

tsc -init

bigInt与symbol

  • bigint表示大数,在ts中的表现形式:
const bigNumber = BigInt(9007199254740991);
const bigNumber1:bigint = 9007199254740991n;
  • Symbol()返回唯一字符串,在对象中可以作为私有属性
const sym1: symbol = Symbol();
const sym2: symbol = Symbol();
console.log(sym1==sym2);//false 
//symbol返回唯一字符串,在对象中可以作为私有属性

补充:for of执行的本质就是调用对象上的迭代器方法,按照指定迭代顺序返回结果:

var obj = {[Symbol.iterator]: function*(){yield 1;yield 2;yield 3;yield 4;}
}
for (let i of obj){console.log(i);
}
1
2
3
4

相关文章:

二、TS的基础类型、类型注解

TS的基础类型、类型注解 TS的基础类型 js的数据类型&#xff1a; 基础数据类型&#xff08;7个&#xff09; boolean string number null undefined BigInt Symbol 引用数据类型&#xff08;1个&#xff09; Object 变量后面多了一个注解&#xff0c;注解为变量限定数据类型&…...

3年经验,3轮技术面+1轮HR面,拿下字节30k*16薪offer,这些自动化测试面试题值得大家借鉴

面试一般分为技术面和hr面&#xff0c;形式的话很少有群面&#xff0c;少部分企业可能会有一个交叉面&#xff0c;不过总的来说&#xff0c;技术面基本就是考察你的专业技术水平的&#xff0c;hr面的话主要是看这个人的综合素质以及家庭情况符不符合公司要求&#xff0c;一般来…...

分类预测 | MATLAB实现WOA-CNN-LSTM鲸鱼算法优化卷积长短期记忆网络数据分类预测

分类预测 | MATLAB实现WOA-CNN-LSTM鲸鱼算法优化卷积长短期记忆网络数据分类预测 目录分类预测 | MATLAB实现WOA-CNN-LSTM鲸鱼算法优化卷积长短期记忆网络数据分类预测分类效果基本描述模型描述程序设计参考资料分类效果 基本描述 1.Matlab实现WOA-CNN-LSTM多特征分类预测&…...

自然语言处理(NLP)之近似训练法:负采样与层序Softmax

我们在前面介绍的跳字模型与连续词袋模型有个缺陷就是在计算梯度时的开销随着词典增大会变得很大&#xff0c;因为每一步的梯度计算都包含词典大小数目的项的累加。为了降低这种带来的计算复杂度&#xff0c;介绍两种近似的处理方案&#xff1a;负采样和层序softmax负采样(Nega…...

关于上位机,C#

TCP与modbusTCP的区别 (10条消息) C#高级--常用数据结构_李宥小哥的博客-CSDN博客_c# 数据结构 C#中常用的数据结构 TCP/IP协议是网络通讯协议。MODBUS是应用与工业现场&#xff08;电子控制&#xff09;的通讯协议。两者的应用范围和应用环境有…...

华为OD机试真题 用 C++ 实现 - 字符串加密 | 多看题,提高通过率

最近更新的博客 华为OD机试 - 入栈出栈(C++) | 附带编码思路 【2023】 华为OD机试 - 箱子之形摆放(C++) | 附带编码思路 【2023】 华为OD机试 - 简易内存池 2(C++) | 附带编码思路 【2023】 华为OD机试 - 第 N 个排列(C++) | 附带编码思路 【2023】 华为OD机试 - 考古…...

达梦8数据守护动态增加实时备库

实时主备环境 类型 业务IP 库名 实例名 PORT_NUM MAL_HOST MAL_INST_DW_PORT MAL_PORT MAL_DW_PORT 主库dm8p 192.168.1.223 DAMENG GRP1_RT_01 5236 10.0.0.223 45101 55101 65101 备库dm8s 192.168.1.224 DAMENG GRP1_RT_02 5236 10.0.0.224 45121…...

《代码整洁之道 - 程序员的职业素养》读书笔记

一 前言 《代码整洁之道 - 程序员的职业素养》的作者是Robert C. Martin&#xff0c;大家喜欢喊他Bob大叔。这本书主要是Bob大叔40年编程生涯的心得体会&#xff0c;主要讲述了一个专业的程序员需要具备什么样的态度&#xff0c;遵循什么样的原则&#xff0c;采取什么样的行动。…...

八、CSS新特性二

文章目录一、CSS3多背景和圆角二、怪异盒子模型三、多列属性四、H5多列布局瀑布流五、CSS3线性渐变5.1 线性渐变5.2 径向渐变六、CSS3过渡动画七、CSS3 2D八、CSS3动画一、CSS3多背景和圆角 css3多背景&#xff0c;表示CSS3中可以添加多个背景。 CSS3圆角 border-radius: 0px;…...

Ubuntu国内镜像源

查看系统版本命令&#xff1a; $ lsb_release -aDistributor ID: UbuntuDescription: Ubuntu 22.04 LTSRelease: 22.04Codename: jammy国内的更新源有多个&#xff0c;几个大互联网公司的源都比较稳定&#xff0c;没什么差别。 下面是比较主流的、常用的几个…...

3.Linux安装es单机版

1.下载 版本 JDK 11ES elasticsearch-7.10.0 jdk安装 下载&#xff1a; wget https://download.java.net/openjdk/jdk11/ri/openjdk-1128_linux-x64_bin.tar.gz配置环境变量&#xff1a;# 编辑配置文件 vim /etc/profile# Java11环境变量配置 export JAVA_HOME/devtools/ja…...

C语言实现通讯录

咱们手机上面还有教务系统上都可以存储信息&#xff0c;这些都是使用编程语言来实现的&#xff0c;那么今天&#xff0c;咱们今天就用C语言来实现通讯录。 一. 实验名称 通讯录 二. 实验目标 1.数据的储存 2.数据的增加 3.数据的删除 4.数据的修改 5.数据的展示 6.数据…...

Python-生成列表

1.生成列表使用列表前必须先生成列表。1.1使用运算符[ ]生成列表在运算符[ ]中以逗号隔开各个元素会生成包含这些元素的新列表。另外&#xff0c;如果[ ]中没有元素就会生成空列表示例>>> list01 [] >>> list01 [] >>> list02 [1, 2, 3] >>…...

如何写好controller层

前言本篇主要要介绍的就是controller层的处理&#xff0c;一个完整的后端请求由4部分组成&#xff1a;1. 接口地址(也就是URL地址)、2. 请求方式(一般就是get、set&#xff0c;当然还有put、delete)、3. 请求数据(request&#xff0c;有head跟body)、4. 响应数据(response)本篇…...

MySQL---视图的概念与操作

MySQL—视图的概念与操作 常见的数据库对象 对象描述表(TABLE)表是存储数据的逻辑单元&#xff0c;以行和列的形式存在&#xff0c;列就是字段&#xff0c;行就是记录数据字典就是系统表&#xff0c;存放数据库相关信息的表。系统表的数据通常由数据库系统维护&#xff0c; 程…...

ChatGPT,会是现实世界的MOSS吗?

最近&#xff0c;两个人工智能系统彻底火出了圈&#xff0c;成为许多网友热议的焦点。 一个是冷酷无情的“幕后主角”MOSS&#xff0c;一个是多才多艺的“全能网友”ChatGPT。 先来说说MOSS。今年春节档&#xff0c;科幻电影《流浪地球2》热映&#xff0c;电影中一个面试环节令…...

安卓大厂面试题_安卓开发面经_Android大厂面经(22/30)之JNI全解析

系列专栏: 《150道安卓常见面试题全解析》 安卓专栏目录见帖子 : 安卓面经_anroid面经_150道安卓常见基础面试题全解析 安卓系统Framework面经专栏:《Android系统Framework面试题解析大全》 安卓系统Framework面经目录详情:Android系统面经_Framework开发面经_150道面试题答…...

记一次docker虚拟机横向移动渗透测试

本次渗透在几个docker虚拟机间多次横向移动&#xff0c;最终找到了一个可以进行docker逃逸的出口&#xff0c;拿下服务器。渗透过程曲折但充满了乐趣&#xff0c;入口是172.17.0.6的docker虚拟机&#xff0c;然后一路横向移动&#xff0c;最终在172.17.0.2出实现了docker逃逸&a…...

计算机网络-物理层

计算机网络-物理层 计算机网络学习笔记 学习视频&#xff1a;https://www.bilibili.com/video/BV1c4411d7jb/?p14&spm_id_from333.1007.top_right_bar_window_history.content.click&vd_source75dce036dc8244310435eaf03de4e330 物理层的基本概念 物理层考虑的是怎样…...

Kubernetes Nginx 发布

kubernetes发布nginx 目录 Nginx Pod启动Service访问Nginx 2.1. NodePort访问Nginx 2.2. ClusterIP访问Nginx 2.3. LoadBalancer访问Nginx 2.4. ExternalName访问NginxDeployment方式部署Nginx 3.1 Nginx Replicas Nginx Pod 启动 nginx-v1.yaml apiVersion: v1 kind: Pod…...

基于nlp_gte_sentence-embedding_chinese-large的智能运维日志分析系统

基于nlp_gte_sentence-embedding_chinese-large的智能运维日志分析系统 1. 运维人员每天都在和什么打交道 凌晨三点&#xff0c;监控告警突然响起&#xff0c;服务器CPU使用率飙升到98%&#xff0c;数据库连接数爆满&#xff0c;用户投诉电话开始涌入。运维工程师小李迅速登录…...

像素幻梦惊艳案例:FLUX.1-dev生成符合PICO-8硬件限制的像素程序截图

像素幻梦惊艳案例&#xff1a;FLUX.1-dev生成符合PICO-8硬件限制的像素程序截图 1. 像素艺术的新纪元 在复古游戏复兴的浪潮中&#xff0c;像素艺术正迎来它的第二次黄金时代。而FLUX.1-dev模型的出现&#xff0c;为这种经典艺术形式注入了全新的活力。今天我们要展示的&…...

文墨共鸣大模型开源项目协作:GitHub Issue分析与PR描述生成

文墨共鸣大模型开源项目协作&#xff1a;GitHub Issue分析与PR描述生成 1. 引言&#xff1a;开源项目维护的“甜蜜负担” 如果你维护过一个稍微有点人气的开源项目&#xff0c;大概能懂这种感受&#xff1a;每天打开GitHub&#xff0c;通知栏里塞满了新消息。有用户提了个Iss…...

基于SpringBoot的高校餐饮档口管理系统

作者&#xff1a;计算机学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等&#xff0c;“文末源码”。 专栏推荐&#xff1a;前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码、微信小程序源码 精品专栏&#xff1a;…...

LFM2.5-1.2B-Thinking-GGUF真实案例分享:边缘终端10秒内完成技术概念解释

LFM2.5-1.2B-Thinking-GGUF真实案例分享&#xff1a;边缘终端10秒内完成技术概念解释 1. 模型简介与核心优势 LFM2.5-1.2B-Thinking-GGUF是Liquid AI推出的轻量级文本生成模型&#xff0c;专为低资源环境优化设计。这个1.2B参数的模型采用GGUF格式&#xff0c;能够在边缘计算…...

从GD32F103到F407升级指南:除了以太网和摄像头,这些‘隐性’升级点更值得关注

GD32F103到F407升级实战&#xff1a;揭秘那些数据手册没告诉你的关键差异 当项目需求从简单的控制逻辑升级到需要处理以太网通信、图像采集或复杂算法时&#xff0c;许多工程师会自然地将目光投向GD32F407系列。表面上看&#xff0c;F407相比F103最直观的变化是主频从108MHz提升…...

STM32串口通信优化:环形队列防数据丢失方案

1. STM32 串口数据接收的痛点与环形队列解决方案在嵌入式开发中&#xff0c;串口通信是最基础也最常用的外设之一。但新手常会遇到这样的问题&#xff1a;当大量数据快速涌入时&#xff0c;传统的串口接收方式很容易丢失数据。我曾经在一个工业传感器项目中就吃过这个亏——传感…...

JDK 1.8 vs JDK 17:jvisualvm 安装配置全攻略(附Visual GC插件避坑指南)

JDK 1.8 vs JDK 17&#xff1a;jvisualvm 安装配置全攻略&#xff08;附Visual GC插件避坑指南&#xff09; 在Java开发的世界里&#xff0c;JVM性能调优一直是开发者进阶的必修课。而jvisualvm作为Oracle官方提供的免费性能分析工具&#xff0c;可以说是我们窥探JVM内部运行状…...

LeetCode单词拆分:动态规划详解,Apache介绍和安装。

单词拆分问题概述 单词拆分&#xff08;Word Break&#xff09;是LeetCode上经典的动态规划问题&#xff0c;题目要求判断给定字符串是否可以被拆分为字典中的单词。例如&#xff0c;给定字符串"leetcode"和字典["leet", "code"]&#xff0c;返回…...

AI 赋能自动化测试实战:从用例生成到 CI/CD 全流程落地

文章目录一、前言二、AI 赋能自动化测试的 5 大核心能力1. 智能测试用例生成2. 智能元素定位与脚本自愈3. 智能执行与异常自适应4. 智能缺陷检测与根因定位5. 测试用例库智能维护三、落地路径&#xff1a;0 到 1 搭建 AI 自动化测试体系阶段 1&#xff1a;工具选型与环境搭建&a…...