珠海金泉做网站号公司或个人码,wordpress的分类,专业排名,做高端品牌生产商的网站文章目录 前言原始数据类型#xff08;Primitive data types#xff09;特殊数据类型断言尖括号断言#xff08;Angle Bracket Syntax#xff09;as 语法断言类型断言函数 泛型数据容器数据类型转换工具函数接口定义 和 | 的用法| 后言 前言 hello world欢迎来到… 文章目录 前言原始数据类型Primitive data types特殊数据类型断言尖括号断言Angle Bracket Syntaxas 语法断言类型断言函数 泛型数据容器数据类型转换工具函数接口定义 和 | 的用法| 后言 前言 hello world欢迎来到前端的新世界 当前文章系列专栏Typescript 博主在前端领域还有很多知识和技术需要掌握正在不断努力填补技术短板。(如果出现错误感谢大家指出) 感谢大家支持您的观看就是作者创作的动力 原始数据类型Primitive data types
number 表示数字可以是整数或浮点数。
let zhuodou:number 123string 表示字符串。
let zhuodou:string 真帅boolean 表示布尔值即 true 或 false。
let zhuodou:boolean falsenull 表示空值。在 TypeScript 中null 是一个独立的类型其它类型的子类型。
let zhuodou:null nullundefined 表示未定义的值。与 null 类似undefined 也是一个独立的类型其它类型的子类型。
let zhuodou:undefined undefined symbol 表示唯一标识符。
let zhuodou:symbol undefined bigint 表示任意精度的整数。
const num1: bigint 123456789012345678901234567890n;
const num2: bigint 987654321098765432109876543210n;const sum: bigint num1 num2; // 可以进行数值运算得到 1111111110111111111011111111100nconsole.log(sum.toString()); // 输出: 1111111110111111111011111111100特殊数据类型
unknown 表示一种不确定的类型。它类似于 any 类型但是更加安全要求在使用之前进行类型检查或类型转换。
let userInput: unknown;
userInput Hello;
userInput 10;if (typeof userInput string) {console.log(userInput.toUpperCase());
}never 表示永远不存在的值的类型。它通常用于表示总是会抛出异常或无法执行完整的函数或是永远不会返回结果的函数。
function throwError(message: string): never {throw new Error(message);
}function infiniteLoop(): never {while (true) {}
}void 表示没有任何返回值的函数的类型。通常用于标记函数为无返回值。
typescript
function sayHello(name: string): void {console.log(Hello, ${name}!);
}tuple 表示一个固定长度的数组类型其中每个位置的元素可能是不同的类型。例如[string, number] 表示一个包含一个字符串和一个数字的数组。
typescript
let person: [string, number] [John, 25];
console.log(person[0]); // John
console.log(person[1]); // 25enum 表示一组具名的常数值。枚举类型常用于表示一组相关的常量可以通过枚举的名字来引用其中的值。
enum Color {Red #FF0000,Green #00FF00,Blue #0000FF,
}let selectedColor: Color Color.Red;
console.log(selectedColor); // #FF0000never 表示永远不存在的值的类型。它通常用于表示总是会抛出异常或无法执行完整的函数或是永远不会返回结果的函数。
typescript
function throwError(message: string): never {throw new Error(message);
}function infiniteLoop(): never {while (true) {}
}symbol 表示唯一的、不可变的值。Symbol 类型可以用作对象属性的键或作为唯一标识符使用。
const key Symbol(securityKey);let data {[key]: secure data,
};console.log(data[key]); // secure data断言
尖括号断言Angle Bracket Syntax
let someValue: any hello;
let strLength: number (stringsomeValue).length;
as 语法断言
let someValue: any hello;
let strLength: number (someValue as string).length;类型断言函数
function assertString(value: any): asserts value is string {if (typeof value ! string) {throw new Error(Value is not a string);}
}let someValue: unknown hello;
assertString(someValue);
let strLength: number someValue.length; // 此处可以正常访问 length 属性泛型
泛型Generics是 TypeScript 提供的一种特性它能够让我们在定义函数、类、接口等数据类型时定义一些可变的类型参数。这些类型参数可以用来表示不同类型之间的关联增加代码的灵活性和复用性。
数据容器 在定义数组、链表、队列、堆栈等数据容器类型时可以使用泛型来表示容器中元素的类型。 interface ContainerT {addItem(item: T): void;removeItem(item: T): void;
}class StackT implements ContainerT {private items: T[] [];addItem(item: T) {this.items.push(item);}removeItem() {return this.items.pop();}
}const stack new Stacknumber();
stack.addItem(1);
stack.addItem(2);
stack.removeItem(); // 2
数据类型转换
在进行数据类型转换时可以使用泛型来表示源类型和目标类型。
function castT(value: any): T {return value as T;
}const str caststring(123); // 123
const num castnumber(123); // 123工具函数
在编写工具函数时可以使用泛型来处理具有不同类型的数据
function toArrayT(value: T): T[] {return [value];
}const arr1 toArraynumber(1); // [1]
const arr2 toArraystring(hello); // [hello]
接口定义
在定义接口时可以使用泛型来表示接口中的属性或方法的类型。
interface ResponseT {code: number;message: string;data: T;
}const res: Responsestring {code: 200,message: ok,data: hello world
} 和 | 的用法 它表示类型的交集。
type Person {name: string;
}type Employee {employeeId: number;
}type Manager Person Employee;const manager: Manager {name: John Smith,employeeId: 1001,
};
|
它表示类型的并集。
type Status active | inactive | pending;function setStatus(status: Status) {console.log(Status:, status);
}setStatus(active); // 合法
setStatus(deleted); // 非法因为deleted不在Status类型的定义中后言 创作不易要是本文章对广大读者有那么一点点帮助 不妨三连支持一下您的鼓励就是博主创作的动力