首页 > 其他分享 >typeScript 基础类型 (三)

typeScript 基础类型 (三)

时间:2024-11-21 09:33:12浏览次数:1  
标签:typeScript undefined void 基础 let 类型 null any

typeScript 的基础类型包含 Boolean、Number、String、nullundefined 以及 ES6 的  Symbol 和 ES10 的 BigInt

下面介绍每种类型的使用和规则

一、字符串类型介绍

 

// 普通的字符串声明方式
let str:string = 'momo~ssds'
// 也可以使用模版字符串

let str1:string = `模版字符串${str}`

console.log('str1 :>> ', str1);

 

 

 

二、数字类型

// 支持十六进制、十进制、八进制和二进制;

let num1: number = NaN; //Nan
let num2: number = 454555; //普通数字
let num3: number = Infinity; //无穷大
let num4: number = 456 //十进制
let num5: number = 0xf00d; //十六进制
let num6: number = 0b1010; //二进制
let num7: number = 0o744; //八进制s

 

三、布尔类型

// 布尔类型
// 注意,使用构造函数 Boolean 创造的对象不是布尔值:

// let createdBoolean: boolean = new Boolean(1)
//这样会报错 应为事实上 new Boolean() 返回的是一个 Boolean 对象 
 
// 事实上 new Boolean() 返回的是一个 Boolean 对象 需要改成

let createdBoolean: Boolean = new Boolean(1)
let booleand: boolean = true //可以直接使用布尔值

这里需要注意这个

 

 

4.空值类型

js 中没有空值(Void)的概念,在 TypeScript 中,可以用 void 表示没有任何返回值的函数

function voidFn(): void { // 这里的void 就表示此函数的返回值为空值
    console.log('test void')
}

当一个函数无需返回值的时候我们就可以给这个函数定义成空值返回

 

另外 void也可以定义undefined 和 null类型

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

 但是当我们给void 定义成null的时候,报错了,这个是因为ts的严格模式下是不允许给void 设置成null的,要放开这个限制,可以修改tsconfig.json 文件把严格模式去掉

 我们把这一行去掉后,发现就不报错了

 

5.Null和undefined类型

// null 和underfined 也是基础类型 我们是可以这么写的
let u: undefined = undefined; //定义undefined
let n: null = null; //定义null

void 和 undefined 和 null 最大的区别

与 void 的区别是,undefined 和 null 是所有类型的子类型。也就是说 undefined 类型的变量,可以赋值给 string 类型的变量:

比如我们这么写会报错的

 

//下面这么写就可以
let test: null = null
let num2: string = "1"
 
num2 = test
 
//或者这样的
let test: undefined = undefined
let num2: string = "1"
 
num2 = test

 

6、Any 类型 和 unknown 顶级类型

any类型就是无法确定是哪种类型的时候就可以使用,其实变相告诉ts不要去检查这个变量的类型

let anys: any = 123 anys = '123' anys = true anys = {a:1}   // 那么当我们没有声明一个变量的类型的时候默认就是any类型 这么写是可以的 但是不推荐 let any1 any1 = 1 any1 = '1223'

 

TypeScript 3.0中引入的 unknown 类型也被认为是 top type ,但它更安全。与 any 一样,所有类型都可以分配给unknown

unknow  unknow类型比any更加严格当你要使用any 的时候可以尝试使用unknow

 

//unknown 可以定义任何类型的值
let value: unknown;
 
value = true;             // OK
value = 42;               // OK
value = "Hello World";    // OK
value = [];               // OK
value = {};               // OK
value = null;             // OK
value = undefined;        // OK
value = Symbol("type");   // OK
 
//这样写会报错unknow类型不能作为子类型只能作为父类型 any可以作为父类型和子类型
//unknown类型不能赋值给其他类型
let names:unknown = '123'
let names2:string = names
 
//这样就没问题 any类型是可以的
let names:any = '123'
let names2:string = names   
 
//unknown可赋值对象只有unknown 和 any
let bbb:unknown = '123'
let aaa:any= '456'
 
aaa = bbb

 

 

 还有一个需要注意的是,如果对象被定义成any和unknow 表现是不一样的,定义成unknow 类型的对象是无法直接使用对象中的属性和方法的

// 如果是any类型在对象没有这个属性的时候还在获取是不会报错的
let obj: any = { b: 1 }
obj.a
 
 
// 如果是unknow 是不能调用属性和方法 下面的这个写法是会报错的
let obj1: unknown = { b: 1, ccc: (): number => 213 }
obj1.b
obj1.ccc()

 下一节介绍接口和对象类型

标签:typeScript,undefined,void,基础,let,类型,null,any
From: https://www.cnblogs.com/shizhouyu/p/18559841

相关文章

  • Linux基础——ISO修复kernel-4.19.0-grub问题:/boot文件损坏
    1、挂载bc8镜像#Trobleshooting进入2、进入修复模式3、进入救援模式4、切换用户根目录/mnt/sysimagechroot/mnt/sysroot/5、挂载ios镜像数据包mkdir-p/mnt/tempmount/dev/sr0/mnt/temp可以尝试以下两种挂载镜像方式iso9660文件系统mount-oiso9660/d......
  • 学习日记之windows基础
    声明学习视频来自B站UP主泷羽sec,如涉及侵权马上删除文章笔记的只是方便各位师傅学习知识,以下网站只涉及学习内容,其他的都与本人无关,切莫逾越法律红线,否则后果自负系统配置lin:/etc和proc(存储信息在目录)win:注册表(存储信息在注册表)windows四种shell接口1.GUI......
  • C++基础知识概述(二)
    一、形参带默认值的函数 二、inline内联函数三、const用法1.const修饰的变量不能作为左值,初始化完成后,值不能修改 2.C与C++中const的区别是:编译方式不同 C:作为一个变量来编译生成指令,C中的const可以不必被初始化,能正常编译,不叫常量,叫常变量。constinta=20;......
  • 嵌入式硬件实战基础篇(三)-四层板PCB设计-步进电机驱动(TMC2208/TMC2209)
    引言:我们在嵌入式硬件杂谈(三)中有提到阻抗匹配的问题,也引入了高速PCB设计的思想,并且此篇实战基础篇主要是基础的四层板的绘制设计,后续实战会对高速板展开,本篇主要是提升读者的设计PCB板的能力,以及对于嵌入式硬件设计能力的提升,对前面的理论作为实践性导向进行强化以及学习。本......
  • 平衡车相关理论基础
    第一步思考:想让平衡小车站立起来首先要知道的是平衡的原理是什么?实验立棍:平衡的原理就比如在你手掌上立辊,棍子要倒的时候,你的手掌应该要向倾斜的方向移动。你立的久了你就会发现倒的速度是因为重力的作用,倾斜角度越大,你的手应该要移动的越快,而棍子在中心的时候会出现小幅度的移动......
  • 【Unity基础】认识Unity中的包
    Unity中的包是一个核心概念,像Unity本身的功能的扩展,或者项目中资源的管理,都是通过包的形式来实现的。一、什么是包?一个包包含满足您项目各种需求的功能。这可以包括编辑器安装过程中附带的任何核心Unity功能,也可以是您根据需要安装的其他包。Package对应的是Unity中的Projec......
  • 人工智能之机器学习最优化基础——射包(Convex Hull)
     射包(ConvexHull)是计算几何中的一个重要概念,指的是给定点集的最小凸包。具体来说,射包是包含点集PPP的最小凸多边形(或凸多面体)。从几何上看,射包可以被认为是用橡皮筋包裹点集后形成的形状。1.射包的定义给定一个点集 P={p1​,p2​,…,pn​}射包(ConvexHull)是满足以......
  • java基础
    01注释单行注释//这里是注释多行注释/*这里是多行注释这里是多行注释这里是多行注释*/文档注释/*****/02标识符和关键字关键字标识符规则所有的标识符都应该以字母(A-Z或者a-z),美元符($)、或者下划线()开始首字符之后可以是字母(A-Z或者a-z),美元符($)、下划线()或数......
  • 人工智能——Python 基础
    学习人工智能(AI)需要一定的Python基础,因为Python是AI领域最广泛使用的编程语言之一。以下是Python基础知识的总结以及如何应用这些知识进入AI领域的学习:1.Python基础语法1.1打印输出打印是Python的基础功能,用于输出内容到屏幕:print("Hello,AIWorld!")1......
  • 2024-2025-1 20241320 《计算机基础与程序设计》第九周学习总结
    2024-2025-120241320《计算机基础与程序设计》第九周学习总结作业信息https://edu.cnblogs.com/campus/besti/2024-2025-1-CFAP|这个作业属于哪个课程|https://www.cnblogs.com/rocedu/p/9577842.html|这个作业要求在哪里|https://www.cnblogs.com/rocedu/p/9577842.html#......