TypeScript类型(数字、字符串、字面量、数组、元组、枚举、对象等)

简介: TypeScript类型(数字、字符串、字面量、数组、元组、枚举、对象等)

一、数字

// number
let decimal: number = 6;
let hex: number = 0xf00d;
let binary: number = 0b1010;
let octal: number = 0o722;
// @ts-ignore
let big: bigint = 9007199254740991n;

二、字符串

// string
let color: string = "blue";
color = "red";
let fullName: string = "bob bob"

三、布尔

// boolean
let isDone: boolean = false;

四、字面量

// 字面量
let a = 10;
a = 10;

五、任意类型

// any 表示任意类型,任意类型TS关闭类型检查,不建议使用
// 显式申明any
// let d:any;
//隐式申明any
let d;
d = 10;
d = "hello";
d = true;

六、未知类型(安全的任意类型)

// unknown 表示位置类型的值
let e: unknown;
e = 10;
e = "hello";
e = true;

类型断言

let str: string;
// any类型的变量可以赋值給任意类型变量
str = d;
// unknown  TS2322: Type 'unknown' is not assignable to type 'string'.
// str=e;
// unkonwn 是类型安全的any unkonwn类型的变量不能直接赋值给其他变量
if (typeof e === "string") {
    str = e;
}
// 类型断言
str = e as string;
str = <string>e;

七、空值

function fun1(): void {
 
}

八、没有值

function fun3(): never {
    throw new Error("error");
}

九、对象

//object表示一个js对象
let a: object;
a = {};
a = function () {
};
 
// {}用来指定对象中可以包含那些属性 语法:{属性名:属性值,属性名:属性值}
// 属性名?:属性值 ?为可选属性
let b: { name: string, age?: number };
b = {name: '张三'};
b.age = 18;
 
// [propName:string]:any 表示任意类型个属性 propName可以是任意非关键字字符串
let c: { name: string, [propName: string]: any };
c = {name: "李四", age: 18, gender: "男"}
 
// 定义一个函数的参数及返回值
let d: (a: number, b: number) => number;
d = function (a, b) {
    return a + b;
}

十、数组

//数组 
// let 变量: 类型[]; 
// let 变量: Array<类型>;
let e: string[];
e = ['a', 'b'];
 
let f: Array<number>;
f = [1, 2, 3, 4];
 
// 不建议
let g: any[];
g = [1, 'str', true]

十一、元组

//元祖,元组就是固定长度的数组
let h: [string, number];
h = ['hello', 123];

十二、枚举

enum Gender {
    Male,
    Female,
}
 
let i: { name: string, gender: Gender };
i = {
    name: "王五",
    gender: Gender.Female
}

十三、组合类型

//&指定类型
let j: { name: string } & { age: number };
j = {name: "孙悟空", age: 500}
 
//类型别名 方便类型复用
type myType = 1 | 2 | 3 | 4 | 5;
let k: myType;
let l: myType;
k = 5;
 
 
// 可以使用 |来连接多个类型(联合类型)
let m: "male" | "female";
m = "male";
m = "female";
let n: boolean | string;
n = true;
n = "hello";
相关文章
|
10月前
|
JavaScript 前端开发
揭秘 TypeScript 条件类型:超越简单类型检查
揭秘 TypeScript 条件类型:超越简单类型检查
|
10月前
|
JavaScript 安全 索引
TypeScript 高级类型工具:Partial, Required, Record 的妙用与陷阱
TypeScript 高级类型工具:Partial, Required, Record 的妙用与陷阱
|
10月前
|
JavaScript 安全 IDE
TypeScript 类型体操:别让 `any` 毁了你的安全网!
TypeScript 类型体操:别让 `any` 毁了你的安全网!
|
存储 安全 JavaScript
TypeScript-内置应用程序类型-Recode
通过使用 `Record` 类型,开发者可以显著提升代码的安全性和可维护性。无论是配置对象、字典结构还是动态表单,`Record` 类型都提供了一个简洁、类型安全的解决方案。
561 82
|
10月前
|
JavaScript 安全 编译器
TypeScript 类型守卫:让你的类型系统更智能
TypeScript 类型守卫:让你的类型系统更智能
|
JavaScript 前端开发 安全
深入理解TypeScript:增强JavaScript的类型安全性
【10月更文挑战第8天】深入理解TypeScript:增强JavaScript的类型安全性
465 0
|
JavaScript 前端开发 开发者
深入理解TypeScript:类型系统与实用技巧
【10月更文挑战第8天】深入理解TypeScript:类型系统与实用技巧
|
存储 JavaScript
typeScript进阶(11)_元组类型
本文介绍了TypeScript中的元组(Tuple)类型,它是一种特殊的数组类型,可以存储不同类型的元素。文章通过示例展示了如何声明元组类型以及如何给元组赋值。元组类型在定义时需要指定数组中每一项的类型,且在赋值时必须满足这些类型约束。此外,还探讨了如何给元组类型添加额外的元素,这些元素必须符合元组类型中定义的类型联合。
230 0
|
JavaScript 前端开发 安全
使用 TypeScript 加强 React 组件的类型安全
【10月更文挑战第1天】使用 TypeScript 加强 React 组件的类型安全
373 106
|
设计模式 JavaScript 安全
TypeScript性能优化及代码质量提升的重要性、方法与策略,包括合理使用类型注解、减少类型断言、优化模块导入导出、遵循编码规范、加强代码注释等
本文深入探讨了TypeScript性能优化及代码质量提升的重要性、方法与策略,包括合理使用类型注解、减少类型断言、优化模块导入导出、遵循编码规范、加强代码注释等,旨在帮助开发者在保证代码质量的同时,实现高效的性能优化,提升用户体验和项目稳定性。
490 6