2022.07.25 TypeScript基础类型介绍
基础类型:
字符串(string)(String)
let first: string = 'niu' // 直接赋值
let fourth: string = `niu` // 模板字符串
let second: string = String(123) // 内置底层函数String
let third: string = new Number(123).toString() // toString方法 // string和String是两种不同的类型,注意区分首字母大小写,String可以兼容string,但是string是无法兼容String的,理解中属于集合中的父子关系,父集可以包含子集,子集无法兼容父级。
let str: string = 'hello';
let strAnother: String = 'hello';
str = strAnother; // 错误提示:不能将类型“String”分配给类型“string”。“string”是基元,但“String”是包装器对象。如可能首选使用“string”。
strAnother = str
所有在JavaScript支持的定义字符串的方法(String方法,模板字符串,toString方法等),都可以直接在TypeScript中使用。
数值型(number and bigint)(Number and BigInt)
number类型表示支持的十进制整数、浮点数以及二进制、八进制、十六进制数。二进制、八进制、十六进制数有个简单的记忆技巧,首先都是0开头的,它们依次为0b、0o、0x,把0抽离出来就是一个box,这不就是css布局中的常用box盒子吗,哈哈。
let a: number = 10; // 整数
let b: number = 3.14; // 浮点数
let c: number = 0b01; // 二进制
let d: number = 0o01; // 八进制
let e: number = 0x01; // 十六进制 // 注意区分字母大小写,同string类似。bigint类型常用来表示较大的整数,因为number类型采用的是IEEE754二进制浮点数算术标准,它会有一个符号位,即正负占1位,指数位,即大小占11位,尾数部分,即精度占据52位,因此可以显示的数值必须是在-2的-53次方到2的53次方范围内,不包含两个端点。当超出这个范围时候,精度就不准确了,这个时候就采用bigInt去表示。
let a: bigint = 10n;
// 注意区分字母大小写,同string类似。number和bigint两种类型是不兼容的,即number不能赋值给类型为bigint的变量,也不能被类型为bigint的变量赋值,对于bigint来讲亦然。
let a: number = 123;
let b: bigint = 10n
a = b // 错误提示:不能将类型“bigint”分配给类型“number”。
b = a // 错误提示:不能将类型“number”分配给类型“bigint”。 // 注意区分字母大小写,同string类似。
布尔值(boolean)(Boolean)
let a: boolean = true;
let b: boolean = false;// 注意区分字母大小写,同string类似。
symbol (Symbol)
let sym: symbol = Symbol();
// 注意区分字母大小写,同string类似。
数组类型(Array)
- 使用[]的形式定义数组类型(推荐使用)
let numberList: number[] = [1, 2, 3]
let stringList: string[] = ['1', '2', '3']
let numberOrStringList: (number | string)[] = [1, 2, 3, '1', '2', '3'] - 使用Array泛型定义数组类型
let numberList: Array<number> = [1, 2, 3]
let stringList: Array<string> = ['1', '2', '3']
let numberOrStringList: Array<number | string> = [1, 2, 3, '1', '2', '3']
- 使用[]的形式定义数组类型(推荐使用)
元组类型(Tuple)
- 元组最重要的特性是可以限制数组元素的个数和类型,特别适合用来实现多值返回。
// 譬如使用React Hooks下的useState时
import { useState } from 'react'; const [key, setKey] = useState('name'); - 使用元组(数组类型的值只有显示添加了元组类型注解后,或者使用as const,声明为只读元组,ts才会把它当做元组,否则推断出来的就是普通的数组类型)
type State = {
x: string,
y: number
}
type SetState = (state: State) => void
const state = {
x: 'hello',
y: 100
}
const setState = () => {}
const x: [State, SetState] = [state, setState];
- 元组最重要的特性是可以限制数组元素的个数和类型,特别适合用来实现多值返回。
特殊类型
any
它指的是一个任意类型,是一个选择性绕过静态类型检测的作弊方式。用any类型声明的变量可以赋值给除never以外的任何类型声明的变量,也可以被任何类型声明的变量赋值。
unknown
它主要用来描述类型并不确定的变量。用unknown类型声明的变量只能赋值给unknown和any,同时它可以被任何类型声明的变量赋值。
void
它仅用于表示没有返回值的函数。即如果该函数没有返回值,那么它的类型就是void.
undefined
它最大价值主要体现在接口类型中,表示一个可缺省、未定义的属性。
null
它最大价值主要体现在接口指定上,表明对象或属性可能是空值。
never
它表示永远不会发生值的类型。用never类型声明的变量可以给所有类型赋值,但是它只能被类型为never的变量赋值。
// 下述函数永远不会有返回值,所以它的返回值类型是never
function ThrowError(msg: string): never {
throw Error(msg);
}
function InfiniteLoop(): never {
while (true) {}
}
object
它表示一个非原始类型的类型,基本没啥用。
2022.07.25 TypeScript基础类型介绍的更多相关文章
- Typescript基础类型
1.布尔值__boolean 2.数字__number----除了支持十进制和十六进制字面量,Typescript还支持ECMAScript 2015中引入的二进制和八进制字面量. 3.字符串__st ...
- TypeScript基础类型,类实例和函数类型声明
TypeScript(TS)是微软研发的编程语言,是JavaScript的超集,也就是在JavaScript的基础上添加了一些特性.其中之一就是类型声明. 一.基础类型 TS的基础类型有 Boolea ...
- typescript基础类型(学习笔记非干货)
布尔值 Boolean let isDone:boolean=false; 数字 Number let decLiteral:number=6; let hexLiteral:number=0xf00 ...
- 4、python常用基础类型介绍
1.字符串 str 描述性质的一种表示状态的例如名字 word='helloworld' print(type(word),word) <class 'str'> helloworld2. ...
- TypeScript 素描-基础类型
博文读自 TypeScript 官方文档而来,不具有学习性,仅是本人学习时记录以供日后翻阅 ,有学习TypeScript的朋友还请去看更为详细的官方文档 TypeScript官网文档中的基础类型, T ...
- TypeScript学习笔记之基础类型
从今天开始学习typescript了,记录ts学习点滴,最后,使用ts结合nodejs开发后端应用,一起共勉吧: typescript最新版本2.6,所有演示代码均基于此版本 开始之前确定安装了如下n ...
- TypeScript 之 基础类型、高级类型
基础类型:https://m.runoob.com/manual/gitbook/TypeScript/_book/doc/handbook/Basic%20Types.html 高级类型:https ...
- TypeScript完全解读(26课时)_2.TypeScript完全解读-基础类型
2.TypeScript完全解读-基础类型 src下新建example文件夹并新建文件.basic-type.ts.截图中单词拼错了.后需注意一下是basic-type.ts 可以装tslint的插件 ...
- 学习笔记:TypeScript入门——基础类型
前言: TypeScript官网断断续续看过几遍,不知道项目中如何使用,有机会还是要实践一下.现在再把文档上不懂的知识点理一遍. 基础类型 1.什么是元组Tuple? 元组类型允许表示一个已知元素数量 ...
- typescript之基础类型
基础类型分为:数字.字符串.数组.元组.枚举.Any.Object.Null.Undefined.Never.Void 各种类型写法如下: 1.数字(number) let num:number = ...
随机推荐
- centos6.x配置虚拟主机名及域名hosts
我们在本地安装了centos或者虚拟主机上安装了centos,主机名称默认是localhost,这样我们可以使用localhost访问我们的主机,在终端命令里默认的是[root@localhost ~ ...
- C语言printf输出32位十六进制
long c = 0X1DAB83; //十六进制数字 printf("c=%lx\n", c); //以十六进制形式输出(字母小写) printf("c=%lX\n&q ...
- 用深度学习模型Word2Vec探索《红楼梦》人物关系
先来看一看结果,发现: 1.贾宝玉和袭人的关系最近. 2.薛宝钗和自己的妈妈关系最近. 3.贾宝玉和林黛玉逼格比较统一,薛宝钗属于独树一帜的逼格调性. 4.大观园中可以看到邢岫烟经常出没... 还有更 ...
- LeetCode 29. 两数相除 时间击败【100.00%】 内存击败【76.25%】
不禁让我想起了计算机是怎样进行除法运算的,单独考虑溢出以及边界情况,单独考虑符号,其他过程和我们小学除法是一模一样的:左移除数(十进制就是扩大十倍,二进制扩大两倍),直到正好比被除数小,一边累加商(在 ...
- mysql清理库中所有表的数据
SELECT CONCAT('truncate table ',TABLE_NAME,';') AS a FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHE ...
- 敌兵布阵 HDU - 1166 - 单点修改,区间查询:树状数组/线段树
C国的死对头A国这段时间正在进行军事演习,所以C国间谍头子Derek和他手下Tidy又开始忙乎了.A国在海岸线沿直线布置了N个工兵营地,Derek和Tidy的任务就是要监视这些工兵营地的活动情况.由于 ...
- Java流程控制之顺序结构+选择结构
顺序结构 Java的基本结构就是顺序结构,除非特别指明,否则就按照顺序一句一句执行. 顺序结构是最简单的算法结构. 语句与语句之间,框与框之间是按从上到下的顺序进行的,它是有若干个依次执行的处理步骤组 ...
- Oracle数据泵恢复用户数据实例
我们测试环境经常会遇到恢复生产数据的情况,我一般比较习惯使用数据泵来搞,这个具体根据自己的业务形态选择适合自己的方式. 此次我们说的是完全恢复用户数据,具体步骤如下: 1.备份数据 expdp tes ...
- MYSQL实现排名函数RANK,DENSE_RANK和ROW_NUMBER
1. 排名分类 1.1 区别RANK,DENSE_RANK和ROW_NUMBER RANK并列跳跃排名,并列即相同的值,相同的值保留重复名次,遇到下一个不同值时,跳跃到总共的排名. DENSE_RAN ...
- 【Java】dto转json
<dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifac ...