详细版简单易学版TypeScript各类型声明

news/2024/11/29 2:54:02/

假如本地新建了一个b.ts文件

安装TypeScript:npm install -g typescript

编译代码:tsc b.ts

运行js:node b.js

在终端输入 tsc -init 生成 tsconfig.json 文件

类型注解:TypeScript里的类型注解是一种轻量级的为函数或变量添加约束的方式

ts编译器:TypeScript提供了静态的代码分析,它可以分析代码结构和提供的类型注解

根据官方 TypeScript 的注意事项,建议不要使用 Number、String、Boolean、Symbol 或 Object

ts各类型声明的代码如下:

一、字符串类型

let str: string = 'hello';
str = 'ts';

二、数字类型

let num: number = 123;
num = 456;

三、布尔类型

let flag: boolean = true;
flag = false;

四、undefined和null

// tsconfig.json 的 "strict": false 时,可以把undefined和null赋值给其他类型的变量
// tsconfig.json 的 "strict": true 时, 🙅不可以把undefined和null赋值给其他类型的变量
let str1: string = undefined;
let num1: number = null;

tsconfig.json 的 "strict": true 时,查看报错:

1、

2、

五、数组

// 1、空数组:可以不规定数组元素的类型
let arr1: [] = [];// 2、非空数组:需要规定数组元素的类型
// 定义数组方式一:普通写法  元素类型[]
let arr2: number[] = [];
let arr3: number[] = [1, 2, 3];
// 定义数组方式二:范型写法  Array<元素类型>
let arr4: Array<number> = [];
let arr5: Array<number> = [4, 5, 6];

六、对象

let obj: object = {};
// 不能将 number、string、boolean 赋值给对象
obj = 123; // 报错
obj = 'str'; // 报错
obj = true; // 报错
// tsconfig.json 的 "strict": false 时,可以把undefined和null赋值给obj
// tsconfig.json 的 "strict": true 时, 🙅不可以把undefined和null赋值给obj
obj = null;
obj = undefined;
obj = [];
obj = new String();
obj = String;

假如将 number、string、boolean 赋值给对象,查看报错:

1、

2、

3、

七、any:任何类型

// 如果我们🤷不知道声明的变量要接受什么类型的值,可以用any,帮助代码通过编译阶段
let test: any = 123;
// 优点:任何类型的值都可以赋给test
test = "str";
test = null;
test = [];
// ......
// 缺点:arr6的每个元素设置成了any后,ts编译器不会对每个元素做类型检查,当js运行代码时第10行代码就会报错
let arr6: any[] = [1, 2, 3, "str", false];
console.log(arr6[0].split(' ')); // js运行时会报错,因为数字1没有split()方法

js运行时报错,查看报错:

八、void:空值

// void表示没有任何类型、没有任何返回值
// 通常用于函数,void表示该函数没有返回值,调用该函数会得到undefined,相当于在函数内部 return undefined
function func(): void {console.log("这是void");
}
console.log(func()); // undefined// void只能给undefined定义类型,因为void就是表示没有任何类型
let un1: void = undefined;
// 👆上面那样写没什么意义,因为undefined本身就是一个类型,等价于👇下面这样写
let un2: undefined = undefined;

九、类型推断

// ts在变量没有明确指定类型时推测一个类型
// 1、定义变量时,给变量赋值,值是什么类型ts就会推断这个变量时什么类型
let test1 = '123';
// test1 = false; // 报错// 2、定义变量时,没给变量赋值,相当于any类型
let test2;
test2 = [];
test2 = {};
test2 = 123;
test2 = null;

十、联合类型

// 明确指定值可以使用哪几种类型,比any类型更好一点
let all: number | string | boolean = "";
// 联合类型只能访问指定的类型的共有属性和方法,例如它们的toString()方法
console.log(all.toString());
// 要么是访问最后一次赋值的类型的方法,否则会报错
all = true;
console.log(all.split(" ")); // 报错,因为boolean类型没有split()方法

http://www.ppmy.cn/news/61760.html

相关文章

vue3+webpack4 前端优化首屏时间

项目背景 中小项目&#xff0c;Vue-cli3 vue2 webpack4 目标 缩短白屏时间&#xff0c;用户能够更快的看到我的页面&#xff01; 白屏时间&#xff1a;从打开页面到看到页面&#xff0c;中间白屏停留的时间。 方向 1.减少资源体积&#xff0c;从而缩短请求时间 2.减少资…

C# 使用PdfiumViewer实现对PDF文档打印预览(二)

文章目录 前言关于PdfiumViewer配置PdfiumViewer环境PdfiumViewer 打开并预览本地的PDF文档PdfiumViewer 预览PDF文件流小节附录 前言 想要对PDF文档进行预览和打印&#xff0c;实际上这个文档可以是存在的&#xff0c;也可以是一个PDF文件流&#xff08;本地并没有PDF文件&am…

5 系统数据文件和信息

5.1 口令文件 口令文件包含了下表中所示的各字段&#xff0c;这些字段包含在<pwd.h>中定义的passwd结构中。 /etc/passwd文件中的字段 说 明struct passwd 成员用户名char *pw_name加密口令char *pw_passwd数值用户IDuid_t pw_uid数值组IDgid_t pw_gid注释字段char *pw_g…

Linux 创建监控用户

1.创建用户和登录shell useradd -s /bin/bash monitor 2.修改用户密码 passwd monitor 3.创建用户shell执行命令目录 mkdir /home/monitor/.bin 4.root修改用户的shell配置文件 chown root. /home/monitor/.bash_profile chmod 755 /home/monitor/.bash_profile 5.修改ba…

数字化转型导师坚鹏:如何制定企业数字化转型年度培训规划

如何制定企业数字化转型年度培训规划 ——以推动企业数字化转型战略落地为核心&#xff0c;实现知行果合一 课程背景&#xff1a; 很多企业都在开展企业数字化转型培训工作&#xff0c;目前存在以下问题急需解决&#xff1a; 缺少针对性的企业数字化转型年度培训规划 不清…

Java8异步编程的技巧

以下是Java8异步编程的技巧&#xff1a; 1. CompletableFuture CompletableFuture是Java8中新增的一个类&#xff0c;它提供了一种简单而强大的异步编程方式。通过使用CompletableFuture&#xff0c;我们可以轻松地创建和组合异步任务&#xff0c;让代码更加简洁和易于维护。…

服装生产erp都有哪些功能?该如何选服装生产erp?

各位开服装工厂的老板是否遇到这些难题&#xff1a; 库存管理成本高&#xff0c;大量库存积压导致资金紧张&#xff1b; 车间用人成本高&#xff0c;工人工作效率低&#xff0c;浪费大量时间和资金成本&#xff1b; 生产、加工、成品出库等各环节无法顺畅衔接&#xff0c;补单困…

网络安全监管

网络安全监管 网络安全法律体系建设计算机犯罪、信息安全等基本概念我国立法体系及网络安全法我国的立法体系网络安全法出台背景基本概念安全法主要结构第一章 总则第二章 网络安全支持与促进第三章 网络运行安全第四章 网络信息安全第五章 监测预警与应急处置第六章 法律责任 …