let arr1: string[] = ["hello", "world"]; let arr2: Array = ["hello", "world"];
元组是一种特殊的字段
let arr1: ["string", "number"] = ["hello", 123];
元组越界时,会以联合类型来处理,具体请查阅文档。
枚举
与C#和Java语言相比,枚举类型提供了另一个方便的功能,即可以获取枚举的名称。
enum Color {Red = 1, Green, Blue} let colorName: string = Color[2]; console.log(colorName); // 显示"Green"因为上面代码里它的值是2
任何,无效
any表示任意类型,类型不确定时可以使用(能不使用就不要使用)typescript参数推断,如:
你很难判断第三方的返回值的类型
您不确定要使用什么类型
void 正好相反,表示没有类型,通常用于不返回值的函数
空,未定义
类型定义与 JavaScript 一致
在 TypeScript 上typescript参数推断,它可以分配给:它自己的类型、any、void
目的
对象类型是除基本 6 种类型之外的泛型类型。
使用时请注意。 使用object声明时,前面只能作为object使用,如:
let a: object = new Date(); a.hasOwnProperty("name"); // ok a.getDate(); // error
绝不
never 是一种特殊类型,意味着它永远不会到达。
一个典型的场景是抛出异常的函数的返回值。
function bizError(code: number, msg: string): never { throw new Error({ code, msg }); }
类型断言
类型断言,我想也可以理解为强制类型转换。
让我们通过几个示例来了解此功能和强类型语言类型:
// 尖括号式 let var1: any = "abc"; console.log((var1).substring(1)); // as let var2: object = new Array(); console.log((var2 as Array).push(1));
类型推断
在某些情况下,不需要指定变量类型,TypeScript 可以根据上下文手动推断类型。 例如:
let a = "abc"; console.log(a.substring(1)); let obj1 = { str1: "abc", num1: 123 }; let { str1, num1 } = obj1;
参考
TypeScript 语言指南
发表评论