2.TS 的数据类型
一、定义变量
TS 中创建变量有四个要素:
- 定义变量的关键字:
var、let、const - 变量名
- 变量的数据类型
- 变量的初始值
语法结构如下:
let 变量名: 数据类型 = 初始值
注意,变量的初始值必须是当前定义的数据类型。
例如:
let a: number = 10;
二、TS 的数据类型
1、基础类型
- 数字
number:TS 中不管是整数还是小数都属于number类型; - 字符串
string:单引号、双引号、ES6 的模板字符串都属于string类型; - 布尔值
boolean:true 和 false;
let a: number = 10;
let b: string = 'hello';
let c: boolean = true;
2、null 和 undefined
TS 中的 null 和 undefined,跟 JS 中的一样,null 类型下的数据只有 null 本身,undefined 类型下的数据也只有它自身。
let d: null = null;
let e: undefined = undefined;
在 TS 中,这两个数据类型本身的作用不是很大。
3、any 类型
any 表示任意数据类型,意味着我们可以将任何变量都设置成 any 类型。
let f: any = 1;
let g: any = 'hello';
但是,尽量不要使用该类型。
4、void
void 从概念来说,刚好和 any 相反,它表示没有任何类型。
通常,当一个函数没有返回值得时候,我们会将返回值的类型设置为 void:
基础语法:
function 函数名(): 返回值类型 {
}
示例代码:
function foo(): void {
}
5、数组
TS 中要求数组中所有元素的数据类型必须一致,因为我们在通过 TS 定义数组时,必须先声明数组中子元素的数据类型。
基础语法:
let 变量名: 子项类型[] = 数组值;
示例代码:
let h: number[] = [1, 2, 3];
6、元组
元组类型,允许创建一个已知数组子项的数量和类型的数组,数组中子项的类型可以不一样。
基础语法:
let 变量名: [类型一, 类型二] = [值一, 值二];
示例代码:
let i: [number, string, boolean] = [1, 'a', true];
7、对象
基础语法:
let 变量名: { 属性名一: 数据类型, 属性名二: 数据类型 } = { 属性名一: 值, 属性名二: 值 }
示例代码:
let j: { name: string, age: number } = { name: '张三', age: 20 }
8、枚举
我们在实际开发中,很多时候会使用数字来表示一些状态。例如:
- 在设置性别时,会用数字 1 表示男性,用数字 0 表示女性;
- 在设置订单状态时,会用数字 0 表示订单支付失败,数字 1 表示订单支付成功,数字 2 表示订单超时…
大部分时候,我们没办法记住每一个数字所对应的含义,因此,TS 中提供了枚举的类型来描述每一个数字的含义。
基础语法:
enum 自定义名字 {
含义 = 数字一,
含义 = 数字二,
}
示例代码:
enum gender {
female = 1,
male = 0
}
const student = { name: '张三', age: 20, gender: gender.female }
console.log(student); // { name: '张三', age: 20, gender: 1 }
9、never
never 类型表示永远不存在的值的类型。
例如某一个函数中抛出了异常,对于该函数的返回值来说,就永远都不存在,因此该函数的返回值的类型可以设置为 never。
示例代码:
function foo(): never {
throw new Error('错误')
}
10、unknow
unknow 是 TS 3.0 中新增的类型。它和 any 类似,任意类型的数据都可以设置为 unknow。
示例代码:
let k: unknown = 1;
let l: unknown = 'hello';
unknow 和 any 的区别在于:
任何类型的值都可以赋值给 any,同时,any 类型的值也可以赋值给任何类型。
let m:any = 1;
m = true;
let n: string = m;
任何类型的值都可以赋值给 unknow,但是,unknow 类型的值只能赋值给 unknow 或 any。
let o: unknown = "a";
let p: any = o;
// let q: string = o; // 报错
2.TS 的数据类型的更多相关文章
- TypeScript——02——TS基本数据类型介绍和使用
一,TS的数据类型 ES6的数据类型: 6种基本数据类型 Boolean Number String Symbol undefined null 3种引用类型 Array Function Objec ...
- Ts基本数据类型
TS的基本数据类型 string let str : string str = 1 //报错 会提示num是字符串 不是数字 str = 'test' //正确 //拼接字符串 let str2 : ...
- TS 基础数据类型
1.基础数据类型 Boolean布尔值 Number数字 String字符串 Array数组 Tuple元组 Enum枚举 Any void Boolean布尔值:true/fals ...
- ts常用数据类型
1.1 布尔值 let isTrue: boolean = false; console.log(isTrue); 1.2 数字 let age: number = 26; console.log(a ...
- TypeScript学习第二天:认识ts的数据类型
目录 1,类型总览 2,基本类型 2.1,布尔 2.2,数字 2.3,字符串 2.4,Null 2.5,undefined 2.6,symbol 2.7,bigint 3,引用类型 3.1,数组 Ar ...
- typeScript入门(一)构建环境和数据类型
最近入坑v-cli 3.0,发现ts越来越常用了,于是开始入坑学习. 1.构建ts环境 npm install -g typescript Mac和vscode用户可以用以下方式构建tsdemo项目 ...
- 感受typescript定义变量和数据类型的神奇魔力
变量和数据类型 你的Javascript能力到达瓶颈?那是因为你还不会typescript.掌握TS,让你的开发更加准确简洁. 今天的学习中,我们接着从TS的数据类型和变量入手,感受它们的奇妙魔力. ...
- 手摸手教你用 yapi-to-typescript生成Yapi的TypeScript数据类型
一 背景 现代社会比较重视效率,本着这个思想宗旨,能用工具自动高效做的事情,就不要低质量的勤奋.yapi-to-typescript就是一款自动生成接口请求与响应的typescript数据类型定义的工 ...
- java基础之集合框架
6.集合框架: (1)为什么出现集合类? 面向对象对事物的体现都是以对象的形式,为了方便对多个对象的操作,就对对象进行存储. 集合就是存储对象最常用的一种方式. (2)数组和集合都是容器,两者有何不同 ...
- 基于 libpcap库的sniffer程序
基于 libpcap库的sniffer程序 Libpcap库是WireSharek和Tcpdump抓包程序的基础,利用libcap我们自己也可以实现自己的抓包程序,在网络上实时抓包分析,或者利用处理的 ...
随机推荐
- ORA-06502: PL/SQL: numeric or value error: character string buffer too small
oracle执行报错 ORA-06502: PL/SQL: numeric or value error: character string buffer too small ORA-06512: a ...
- Win10用户目录迁移后变成英文的修改办法
比如我的目录从C:\Users\Lemon修改到D:\Users\Lemon后: 1.首先可以将Windows文件管理器选项中的"隐藏受保护的操作系统文件"去掉,就可以看到每个目录 ...
- HBase对表增查操作 API
public class HBaseDML { //静态属性 public static Connection conn = HBaseConnection2.conn; //添加数据 public ...
- ThreadMBean
package com.google.thread3; import java.lang.management.ManagementFactory; import java.lang.manageme ...
- [转]C#的反射
一.反射简介 1.1.反射的说明 反射:指程序可以访问.检测和修改它本身状态或行为的一种能力(即:审查元数据并收集关于它的类型信息的能力). ①元数据(编译以后的最基本数据单元:指程序和程序类型本身的 ...
- 小程序调用OCR识别操作的过程,特此记录。
bu废话,直接记录.(注:我用的是云调用!!!) 对于大家首次使用该操作时,推荐两位大佬的文章,大家完全可以看两位大佬的文章,一步一步来就可以实现. 第一个文章呢,先看这个 https://blog. ...
- 【python基础教程】-10.开箱即用(模块的工作原理,获悉模块的功能以及常用模块)
资料来源 (1) Python基础教程第三版 1.模块的工作原理 1.1 简单的模块及使用 1.1.1 模块的本质 (1) 模块就是程序,任何python程序都可以作为模块导入; 1.1.2 简单的模 ...
- 关于服务器选择的chatgpt 的回答
I want to deploy linux as a server with low latency transactions. Which version of the operating sys ...
- Web安全测试之XSS【转】
作者: 小坦克 来源: 博客园 原文链接:http://www.cnblogs.com/TankXiao/archive/2012/03/21/2337194.html XSS 全称(Cross ...
- Python——02.变量及标识符
变量概念: -- 字面量:与字面上显示值一致的量称作字面量,在程序中可直接使用字面量:abc,123, 我是XX,等等 -- 变量:变量可通过赋值保存字面量,变量是可变的,跟随赋值的字面量不同而变化 ...