TypeScript

发布时间 2023-11-03 11:41:33作者: seeding

基础

类型声明空间与变量声明空间

在TypeScript中,有两个相关的概念:类型声明空间(Type Declaration Space)和变量声明空间(Variable Declaration Space)。

类型声明空间是指用于定义类型的命名空间,它包含了在代码中定义的类型、接口、类、枚举等。在类型声明空间中,你可以使用interfaceclasstype等关键字来定义类型,并通过命名空间来组织和管理这些类型的定义。

例如,下面的代码中,Person接口和Car类都是在类型声明空间中定义的:

namespace MyNamespace {
  interface Person {
    name: string;
    age: number;
  }

  class Car {
    brand: string;
    color: string;
  }
}

变量声明空间是指用于定义变量的命名空间,它包含了在代码中定义的变量、常量、函数等。在变量声明空间中,你可以使用letconstfunction等关键字来定义变量和函数,并通过命名空间来组织和管理这些变量的定义。

例如,下面的代码中,name变量和sayHello函数都是在变量声明空间中定义的:

namespace MyNamespace {
  let name: string = "John";

  function sayHello() {
    console.log("Hello, " + name);
  }
}

需要注意的是,类型声明空间和变量声明空间是相互独立的,它们可以存在于同一个命名空间中,也可以分别存在于不同的命名空间中。在命名空间中,你可以同时定义类型和变量,以及它们之间的关联关系。

使用命名空间可以帮助组织和管理代码,避免命名冲突,并提供更好的代码可读性和可维护性。在TypeScript中,你可以使用命名空间来创建模块化的代码结构,并将相关的类型和变量组织在一起。

类型注解与类型推断

类型分类与联合类型与交叉类型

never类型、any类型、unknown类型

类型断言与非空断言

数组类型与元组类型

对象类型与索引签名

函数类型与void类型

函数重载与可调用注解

枚举类型与const枚举

进阶

接口与类型别名区别

字面量类型与keyof关键字

类型保护与自定义类型保护

定义泛型和泛型常见操作

类型兼容性详解

映射类型与内置工具类型

条件类型和infer关键字

类中如何使用类型