TypeScript 类、泛型的使用实践记录 | 青训营

44 阅读1分钟

对于TypeScript,可以向下兼容JavaScript,TypeScript 的主要好处是它可以高亮代码中的意外行为,从而降低出现错误的可能性。

推断类型

TypeScript可以推断变量的类型,不需要额外的标注

image.png

定义类型

有时候,类型比较复杂,TypeScript无法准确推断。所以需要interface声明描述对象:

interface User {
name: string;
id: number;
}

使用的时候:

const user: User = {
name: "Hayes",
id: 0,
};

如果不匹配,TypeScript会发出警告。 同样地,定义类型也可以用于普通的函数等: function func(user: String): Number{}传入的参数是String类型,返回的类型是Number类型。

可以选择的类型如下:JavaScript 中已经有一小部分原始类型可用: booleanbigintnullnumberstringsymbolundefined,可在界面中使用。 TypeScript 用更多的东西扩展了这个列表,比如 any(允许任何东西)、unknown(确保使用这个类型的人声明了这个类型是什么)、never(这个类型不可能发生)和 void(一个函数返回 undefined 或没有返回值)。

联合

使用联合,你可以声明一个类型可以是多种类型之一。 例如,你可以将 boolean 类型描述为 true 或 falsetype MyBool = true | false; 但是MyBool被推断为Boolean类型。

联合也可以被适用于函数,用来传入不同类型的参数。

function getLength(obj: string | string[]) {}

泛型

泛型为类型提供变量。 一个常见的例子是数组。 没有泛型的数组可以包含任何东西。 具有泛型的数组可以描述数组包含的值。

interface Backpack<Type> {
add: (obj: Type) => void;
get: () => Type;
}

例如:传入参数类型不同的时候,Type也不同