手把手教你typescript系列 2 熟悉TS基本类型

【TypeScript】 ts基本语法 JavaScript(也称为ECMAScript)诞生时是一种简单的浏览器脚本语言。当它被发明时,它被期望用于在网页中嵌入简短的代码片段。这些片段通常不超过几十行。因此,早期的 Web 浏览器执行此类代码的速度非常慢。但是,随着时间的推移,JS 变得越来越流行,并且 Web 开发者开始使用它来创造交互式体验。Web 浏览器开发者通过优化执行引擎(动态编译)和扩展可以完成的功能(添加API)来应对 JS 日益增加的使用量,这反过来又使 Web 开发者更多地使用 JS。 阅读详情

为变量和函数声明类型是一个非常好的编程习惯, 这对后端来讲稀松平常,对前端来讲就是建立类型思维的开始。

es6和typeScript都有的类型: Boolean、Number、String、Array、Function、Object、Symbol、undefined、null

typeScript的数据类型在ES6的基础上,又新增了 void、any、never、元祖、枚举、高级类型

类型注解

作用: 相当于强类型语言中的类型声明,对变量起到约束作用
语法: (变量/函数): type , 比如let a: string = '1'

在ts中,变量的数据类型不可改变

//声明bool为布尔类型
let bool: boolean = true;
//声明num 为数值类型
let num: number = 123;
//声明str变量,并定义为字符串类型
let str: string = 'abc';
//在这里将str 赋值成 数值123,编辑器就会报错
str = 123
数组

定义数组类型的两种方式

  1. let arr1: number[]
  2. let arr2: Array; //Array在这里是ts预定义的一个泛型接口
    两种声明方式是等价的。他的意思就是 声明一个数组他的元素只能是number类型,如果为这个数组添加一个字符串类型,编辑器就会报错
    let arr1: number[] = [0,1, ‘1’]; //不允许接收字符串,编辑器报错

如果想声明 [0,1, ‘1’]这种类型的数组就要用到ts的联合类型

联合类型

let arr2: Array<number | string> = [0,1, ‘1’]; //这样的写法表示数组的元素可以是number型,也可以是string型

元组类型

元组类型是一种特殊的类型 他限定了数组元素的类型和个数
let tuple: [number, string] = [1, ‘1’]; //正确
let tuple: [number, string] = [‘1’, ‘1’]; //编辑器会报错
let tuple: [number, string] = [‘1’, ‘1’, ‘1’]; //编辑器会报错,提示不能添加新的元素
元祖的越界问题
tuple.push(1); //编辑器不会报错
此时 console.log(tuple); //输出 [1, ‘1’, 1],三个元素
tuple[2]; 访问刚刚添加进去的元素编辑器会报错,禁止访问.实际开发过程中不建议这样使用

函数

(x: number, y: number)规定了参数类型
(x: number, y: number): number 括号后的number规定了函数的返回类型
通常可以将函数的返回值类型进行省略,ts会自动推导出函数的返回值类型

let add = (x: number, y: number): number => x+ y;

//定义一个函数类型
let compute:(x: number, y: number) => number;
//函数的参数可以和声明时不一样
compute = (a, b) => a+ b;

对象

let obj: object = { x: 1, y:2 };
obj.x = 3; //会报错
正确的定义方法是这样, 定义他的成员
let obj1: {x: number, y: number }= { x: 1m y:2 };
obj1.x = 3; //正确

symbol

let s1: symbol = Symbol();
let s2 = Symbol();
s1 === s2 // false 他两不相等

undefined 和null

undefined 和null是任何子类型,他可以赋值给其他类型

声明为undefined后此变量不能被赋值成为其他任何类型,只能被赋值成它本身
let un:undefined = undefined;
let nu: null = null;

let num: number = 1;
num = undefined; //报错

官方文档说过 undefined 和null是任何子类型,他可以赋值给其他类型, 但是我们这里将undefined赋值给num就会报错,怎么处理,才能通过类型检查呢?

  1. 打开tsconfig.json
    找到 “scriptNullChecks”: 设置为false后,num = undefined;就不会报错
  2. 将num设置成联合类型
    let num: number | null | undefined = undefined; //正确
void

在js中,void操作符,可以让任何表达式 返回undefined
ts中, void表示没有任何返回值的类型
let noReturn = () => {}; //noReturn 的类型就是void类型
比如 void 0;
因为undefined在js中不是保留字, 我们还可以自定义undefined的值.可以尝试在控制台输入并运行一下代码

(function(){
 var undefined = 0;
 console.log(undefined);
})();

可以看到 输出结果是0, 说明闭包中声明的undefined覆盖了全局的undefined.
使用void就可以避免此类情况的发生, 确保函数返回的一定是undefined

any

在ts中,如果我们没有指定类型,默认就是any类型,这就和js中没有区别了, 可以任意对他进行赋值, 其实是对js的兼容
如果不是特殊情况,避免使用any. 如果我们将所有变量定义为any类型就没有必要使用ts了。

never

表示永远不会有返回值的类型

  1. 函数抛出异常 比如 throw new Error()
  2. 死循环函数 - 永远不会反会
【TypeScript】TS类型声明(二) 本人主要讲解TypeScript的基本数据结构,主要包括JS基本数据类型以及TS特有的数据类型。 阅读详情

相关推荐

【TypeScript】TS接口类型(三)

我们经常说道的接口比如后端写了一个接口给前端调用,接口包括地址、参数、请求方式等等,参数规定了传参的类型。而在TS中的接口的定义是什么呢?顾名思义,它也是一种类型,和number、string、undefined等一样,约束使用者使用,主要是用来进一步定义对象中属性的类型。它是对行为模块的抽象,具体的行为是用类来实现。

编码世界 1万+

vue3+vite+ts--computed计算属性的使用

当改变整个testComputed时,才会触发set方法,如果testComputed是对象改变对象的某个属性的值时,不会触发set方法。当testComputed 依赖的值改变时,就会触发get方法。返回值val可以赋值给其他,不可以赋值给自己。

m0_60893808的博客 3740

【TypeScript】TS交叉类型&联合类型(四)

什么事交叉类型呢?简单来说就是通过`&`符号将多个类型进行合并成一个类型,然后用`type`来声明新生成的类型

编码世界 1万+

Vue3ts computed和watch

有bug,当监听引用类型的数据时,oldvalue不能正常显示,原因是watch没有做缓存,所以一碰到引用类型就歇逼,而computed做了缓存。当使用ref的时候,需要开启深度监听,使用reactive会自动开启深度监听(就算你设置了deep:false也会监听)当依赖的属性值发生变化,才会触发他的更改,如果依赖的值不发生变化,使用的是缓存中的值。当监听reactve对象的时候,写不写deep无所谓,都可以监听到深层次变化。深度监听bug:当开启深度监听的时候,oldvalue会等于newVal。

qq_61398960的博客 1798

【TypeScript】TS条件类型(十)

条件类型允许根据一个或多个条件对类型进行推断,并且还能在在类型级别上进行复杂的逻辑运算和类型操作。

编码世界 6万+

【TypeScript】TS类型守卫(六)

类型守卫主要是用来**判断未知类型是不是所需要的类型**。类型守卫主要包括四种方式:in,typeof, instanceof,自定义类型

编码世界 1万+

TS 计算属性computed,不需要自动指类型,他会自己类型推断

【代码】TS 计算属性computed,不需要自动指类型,他会自己类型推断。

jieweiwujie的博客 1301

从零开始:用这些公开数据集搞定电力AI项目(含鸟巢、绝缘子、负荷预测等33个实战资源)

本文系统梳理了电力AI领域33个精选公开数据集,涵盖目标检测、负荷预测等关键场景,如鸟巢检测、绝缘子缺陷识别等。通过实战案例解析数据预处理、模型选型及性能优化策略,帮助工程师快速构建端到端解决方案,解决电力AI项目中的数据获取与处理难题。

weixin_42522552的博客 216

一个小时教你如何掌握ts基础

ts是微软的开源的编程语言,是js的超集,

weixin_67746880的博客 1212

主流算力卡性能对比分析

超大规模AI训练/HPC:优先选择NVIDIA H100或AMD MI300X,需关注显存带宽和多卡互联能力。企业级AI训练:NVIDIA A100性价比更高,生态成熟。国内自主可控需求:华为昇腾910B是首选,支持液冷和低功耗设计。本地AI推理/游戏:NVIDIA RTX 4090或RTX 5090性价比突出,但需注意显存容量限制。边缘计算/低功耗场景:华为昇腾310或清微智能TX536(能效比6.3TOPS/W@INT8)更合适。

m0_69867914的博客 7795

详解Nacos集群搭建

在我们日常的开发当中,用的都是单点Nacos,这种模式,我们自己开发测试玩一玩还可以,但是到了企业的生产环境之下,你还这么玩的话,那肯定是要出大问题了。因为在企业当中,我们更加强调的是高可用,所以在企业的生产环境下,Nacos一定要做成个集群。

博客 1万+

TypeScript进阶 类型演算与高级内置类型

本文深入探讨了 TypeScript 类型演算的原理和应用。通过使用类型演算,我们可以在编译时对类型进行操作和计算,从而提供更强大的类型系统。通过合理地运用类型推断、条件类型、映射类型等工具,我们可以编写更安全、更健壮的代码,并提高开发效率。希望本文能够帮助读者深入理解 TypeScript 类型演算,并在实际开发中得到应用。

1795

ZYNQ GP总线实现PS与PL交互

3,完成 ZYNQ7 Processing System 的配置更改后,回到 Diagram 界面中,可以看到新出现了名为 M_AXI_GP0_ACLK、M_AXI_GP0 和 FCLK_CLK0 的接口,下面我们要对这些接口进行连接或引出。此处的偏移量,AXI的相邻寄存器偏移量相差4个字节,默认slv_reg0的偏移量是0,可以推导出slv_reg1,slv_reg2的偏移量分别为4和8,这里只用到了slv_reg0,所以偏移量为0。当然了,窗口数量的增加,势必会使得单个窗口的采样深度变小。

wangjie36的博客 7094

TypeScript——基本类型二

number、bigint、symbol、类型拓宽

商务合作欢迎私信我 1万+

为Ollama本地大模型添加持久化记忆层:openclaw-ollama-memory项目详解

在构建基于大型语言模型(LLM)的对话应用时,上下文管理是核心技术挑战之一。其原理在于模型本身不具备跨会话的持久化记忆能力,每次请求都是独立的。这导致在多轮对话中,模型无法有效利用历史信息,用户体验割裂。从技术价值看,独立的记忆层通过解耦推理与存储,能突破模型固定上下文窗口的限制,实现更智能、连贯的交互。其核心应用场景包括聊天机器人、智能助手及需要长期记忆的复杂代理。本文聚焦的 openclaw-ollama-memory 项目,正是为 Ollama 生态提供的记忆层解决方案,它通过向量检索和智能摘要等机制

weixin_42521558的博客 312

STM32F407驱动OV2640摄像头全栈解析:DCMI+DMA+SCCB协同设计

图像采集是嵌入式视觉系统的基石,其核心在于传感器与MCU间的数据通路构建。原理上需理解并行接口(如DCMI)的硬件同步捕获机制、串行控制总线(如SCCB/I²C)的寄存器级配置逻辑,以及DMA在高吞吐数据搬运中的关键作用。技术价值体现在解放CPU、保障实时性、降低功耗,并支撑JPEG压缩与RGB565直显等差异化应用。典型场景包括智能终端实时预览、低带宽图像上传、工业现场视频监控及教学实验平台搭建。本文以STM32F407与OV2640集成实践为载体,深入剖析DCMI时序约束、SCCB软件模拟实现及DMA循

weixin_36151775的博客 179

【TS系列】TypeScript之基本类型

走进TypeScript之基本类型~

一名大二在校大学生,本科计算机科学与技术在读~ 1551

21、时间触发以太网:通信、诊断、故障隔离与参数化详解

本文详细解析了时间触发以太网(TTEthernet)的核心机制,包括团检测算法、诊断服务、故障隔离策略、配置服务以及协议参数化等内容。TTEthernet是一种专为超高可靠性系统设计的网络技术,广泛应用于航空航天、工业自动化和汽车电子等领域。文章还探讨了其未来发展趋势,如技术创新与生态建设,为开发者、企业和研究机构提供了应用与发展的方向。

efc12345678的博客 110

【TypeScript】TS 看这一篇就够了

目标:能够理解TypeScript中有哪些数据类型可以将 TS 中的常用基础类型细分为两类:JS 已有类型原始类型,简单类型(复杂数据类型(数组,对象,函数等)TS 新增类型联合类型自定义类型(类型别名)接口元组字面量类型枚举void泛型是可以在保证类型安全前提下,让函数等与多种类型一起工作,从而实现复用,常用于:函数、接口、class 中需求:创建一个 id 函数,传入什么数据就返回该数据本身(也就是说,参数和返回值类型相同)

一个前端开发者 5894

【OpenClaw从入门到精通】命令行操作指南——TUI模式高效管理OpenClaw(2026避坑版)

本文将详细介绍OpenClaw的命令行操作,重点介绍TUI(Text User Interface)模式的高效使用方法,以及在实际使用中需要避免的常见陷阱。通过本文的学习,你将掌握OpenClaw命令行的精髓,提升工作效率。

一键难忘的博客 1691

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

【Typescript笔记】之基本类型在TypeScript中的应用

相信大家经常会问到为什么会有Ts,我该不该学习Ts,在知乎上这样的问题也会受到大家广泛的关注,而我的回答是,该去了解,因为了解Ts不会像我们学习英语那样“痛苦”,如果TypeScript能够解决你的问题,那就继续深入的学习吧,本系列的第一篇文章也不会有太深奥的理论,花一些时间了解一下给出自己的判断吧~

余光的博客 8364

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

ts基本类型 typeof 和keyof

安装编译ts的工具安装命令: 或者 。验证是否安装成功:tsc –v(查看 TypeScript 的版本)。创建 文件(注意:TS 文件的后缀名为 )。将 TS 编译为 JS:在终端中输入命令,(此时,在同级目录中会出现一个同名的 JS 文件)。执行 JS 代码:在终端中输入命令,。说明:所有合法的 JS 代码都是 TS 代码,有 JS 基础只需要学习 TS 的类型即可。注意:由 TS 编译生成的 JS 文件,代码中就没有类型信息了。 创建 TS文件hello 通过 tsc hello.ts 命令会生成同

weixin_68531033的博客 1万+

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

【Typescript教程03】TS基本类型与变量声明

本文摘要: 《TypeScript教程-第3章》详细讲解了TS的基本类型和变量声明。重点介绍了number、string、boolean和symbol四种原始类型的特性和用法,对比let、const、var三种变量声明方式的作用域与特性差异。通过典型类型错误示例说明TS的类型检查机制,并提供10道高频面试题及解析,涵盖类型推断、联合类型等核心概念。本章为TS类型系统的基础内容,强调静态类型检查的优势,帮助开发者构建更安全可靠的代码。

silverclayz的技术分享 1192

【TS】九天学会TS语法——2.TypeScript基本类型及变量声明

TS一共有六种基本类型,分别是number、string、boolean、any、void以及undefined。number:表示数字类型,包括整数和浮点数。string:表示字符串类型,可以使用单引号或双引号。boolean:表示布尔类型,只有 true 和 false 两个值。any:表示任意类型,可以赋值为任何类型的值。void:表示空类型,通常用于函数没有返回值的情况。");// 执行一些计算,但不返回任何值undefined:表示一个变量已经被声明,但尚未被赋值。

m0_59873661的博客 1214

【前端学习-TypeScript】1-TS数据类型

本文介绍了TypeScript(TS)中的基本数据类型和特殊数据类型。基本数据类型包括string、number、boolean、null和undefined,以及void类型,详细说明了它们的定义和使用方法。特殊数据类型涵盖了any、unknown、never、tuple和enum等类型,重点阐述了any类型的灵活性、unknown类型的安全性要求、never类型的特殊用途以及tuple类型的固定长度特性。文章还对比了基本类型与构造函数类型的区别,并强调了类型检查在TS开发中的重要性。通过代码示例展示了各

m0_52286273的博客 1804

TypeScript ~ 掌握基本类型 ②

基础类型 TypeScript是JavaScript的超集。它对JS进行了扩展,向JS中引入了类型的概念,并添加了许多新的特性。TS代码需要通过编译器编译为 → JS,然后再交由JS解析器执行。TS完全兼容JS,换言之,任何的JS代码都可以直接当成JS使用。相较于JS而言,TS拥有了静态类型,更加严格的语法,更强大的功能;TS可以在代码执行前就完成代码的检查,减小了运行时异常的出现的几率;TS代码可以编译为任意版本的JS代码,可有效解决不同JS运行环境的兼容问题;

m0_61490399的博客 3680
上一篇: typeSctipt入门系列 - 1配置开发环境
下一篇: HTTPS采用的加密方式及认证方式解读
小透明_c
博客等级 码龄7年 1粉丝 24原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值