类型系统
目录
首先说明一下,本人是前端小学生级别的菜鸡,吐槽的话请口下留情,在评论区指出错误或者补充不足,我会很喜欢,互喷不会进步,相互指点才会。。。。谢谢大家啦
类型推断
📌如果我们编写了代码,但是不主动给代码加上类型的声明的话,系统会自动给我们的代码进行类型推断的,不推荐。
字符串
下例中系统会根据值推断akun 变量为 String,当将 akun 设置为 18 的 Number 类型时编译时将报误,因为Number 类型不能赋值给String类型
// 字符串
let Takun = "akun.com"; //string
// akun = 18; // error
数值
ts 中的数值类型包括了小数、负数、整数,都是Number
// 数值
let Takun02 = 100; //let akun : number
// Takun02 = "akun.com"; //error
Takun02 = 100.1; //ok
Takun02 = -101; //ok
布尔值
值为 true 或 false 会被推断为 boolean 类型
// 布尔类型
let Takun03 = true;
// Takun03 = 18; //error
bigint
📌bigint 类型包含所有的大整数。
// bigint类型
let Takun04: bigint = 123n;
let Takun05: bigint = 0xffffn;
object
根据 JavaScript 的设计,object 类型包含了所有对象、数组和函数
// object类型
const Takun06: object = { foo: 123 };
const Takun07: object = [1, 2, 3];
const Takun08: object = (n: number) => n + 1;
上面示例中,对象、数组、函数都属于 object 类型。
类型声明
📌尽量不要使用系统自动推断的类型,因为,你可能遇到错误。所以我们要主动声明,使用:声明类型
字符串
使用:string声明字符串
// 字符串
const Sakun01: string = "hello";
const Sakun02: string = `${Sakun01} world`;
数值
在 TS 中不区分整数与浮点数,都使用 number 来声明
// 数值
const Sakun03: number = 99;
const Sakun04: number = 99.99;
bigint
bigint 类型包含所有的大整数。
// 比金
const Sakun05: bigint = 123n;
const Sakun06: bigint = 0xffffn;
bigint 与 number 类型不兼容。
const x:bigint = 123; // 报错
const y:bigint = 3.14; // 报错
📌上面示例中,
bigint
类型赋值为整数和小数,都会报错。注意,bigint 类型是 ES2020 标准引入的。如果使用这个类型,TypeScript 编译的目标 JavaScript 版本不能低于 ES2020(即编译参数target
不低于es2020
)。
布尔
使用 boolean 来声明布尔类型
// 布尔
const Sakun07: boolean = true;
const Sakun08: boolean = false;