typescript参数推断-TypeScript学习2-数据类型

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 语言指南