第36天:打字稿基础知识
#javascript #typescript #100daysofcode #day35

类型注释ð

类型注释以定义可变,函数参数或返回值的数据类型的明确声明。通过使用类型注释,开发人员可以确保在开发期间而不是在运行时捕获潜在的错误。

let age: number;
age = 25; // This is valid
age = "25"; // This will throw a compilation error

当您需要精确控制类型并希望将该意图传达给其他开发人员时,类型注释会发光。

类型推理ðµï¶

打字稿的类型推理是能够根据其用法和上下文自动结论值的类型。在许多情况下,此功能消除了对明确类型注释的需求,使代码更加简洁,可读。

let username = "John Doe"; // TypeScript infers the type as string

类型推理在分配中很明显的方案中闪耀,减少了冗余和潜在的人类错误ð§©。

typeð

type关键字允许开发人员通过组合现有类型来创建自定义类型。在处理复杂的数据结构或工会类型时,这特别有用。

type Point = {
  x: number;
  y: number;
};

function calculateDistance(point: Point) {
  // ...
}

type关键字支持联合类型,交叉点和条件类型,从而可以创建高级类型的组成。

interfaceð

interface关键字用于定义描述对象形状的合同。可以通过类实现接口,也可以扩展其他接口。

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

class Admin implements User {
  // ...
}

界面在定义对象结构时特别有效,因为它们为预期属性和方法提供了明确的合同。

Cold0 vs Cold3

typeinterface之间的选择经常引发打字稿开发人员之间的辩论。尽管两者都可以取得相似的结果,但有一些细微的差异要考虑ð。

  • 扩展

    • 接口可以使用extends关键字扩展其他接口,从而可以增量复杂的结构。
    • 可以使用交叉点(&)合并类型以获得相似的结果。
  • 声明合并

    • 接口支持声明合并,其中多个带有同名的接口声明自动合并为一个。
    • 类型不支持声明合并。
  • 与原语的兼容性

    • 接口不能直接用于描述诸如stringnumber等的原始类型
    • 类型可以轻松地表示原始类型。

最终,typeinterface之间的选择取决于特定的用例和编码样式偏好。建议在定义合同和对象结构时使用interface,而type在处理更复杂和组成的类型时。