深入浅出ts
一、为什么要学习ts
ts vs js TypeScript 是 JavaScript 的超集,它包含了 JavaScript 的所有元素,可以载入 JavaScript 代码运行,并扩展了 JavaScript 的语法。TypeScript 增加了静态类型、类、模块、接口和类型注解等特性。TypeScript 代码需要通过编译器编译为 JavaScript,然后再交由 JavaScript 解析器执行。
二、ts基础
ts数据类型
number 类型用于表示数字,可以是整数或浮点数。例如:let num: number = 123; string 类型用于表示字符串,可以使用单引号或双引号来定义。例如:let str: string = 'hello'; boolean 类型用于表示布尔值,只有两个值:true 和 false。例如:let isTrue: boolean = true; null 和 undefined 分别表示空值和未定义。它们的类型分别为 null 和 undefined。例如:let n: null = null; let u: undefined = undefined; symbol 类型表示独一无二的值。例如:let sym1 = Symbol(); let sym2 = Symbol('key');
数组 类型用于表示一组相同类型的值。可以使用 类型[] 或 Array<类型> 来定义。例如:let arr1: number[] = [1, 2, 3]; let arr2: Array = [1, 2, 3];
对象 类型用于表示一个对象,可以使用接口或类型别名来定义对象的类型。例如:
interface Person { name: string; age: number; } let person: Person = { name: 'lisa', age: 25 };
枚举(Enum) 类型用于定义一组命名的常数。当一个变量有几种可能的取值时,可以将它定义为枚举类型。例如,我们可以定义一个枚举类型来表示颜色:
enum Color { Red, Green, Blue } let c: Color = Color.Green;
在上面的例子中,我们定义了一个名为 Color的枚举类型,它包含三个成员,分别表示红、绿、蓝三种颜色。然后我们定义了一个名为 c的变量,它的类型为 Color,并将它的值设置为 Color.Green。
在上面的例子中,我们将 Red 的值指定为 1,那么后面的成员会依次递增,即 Green 的值为 2,Blue 的值为 3。
还可以通过枚举值来获取它的名字:
enum Color { Red = 1, Green, Blue } let colorName: string = Color[2]; console.log(colorName); // 输出 'Green'
在上面的例子中,我们使用 Color[2] 来获取枚举值为 2 的成员的名字,即 'Green'。
never 类型表示永不存在的值的类型,常用于抛出异常或无限循环的函数返回值类型。例如:
function error(message: string): never { throw new Error(message); }