📜  typescript 类型编号范围 - TypeScript (1)

📅  最后修改于: 2023-12-03 15:20:43.448000             🧑  作者: Mango

TypeScript 类型编号范围

在 TypeScript 中,我们可以使用类型注解来指定变量的类型。这些类型注解可以帮助我们在编译时捕获一些常见的错误,并提供更好的编码体验和自动补全功能。

以下是 TypeScript 中常用的类型编号范围及其说明:

原始类型
string

表示字符串类型。

let str: string = "Hello, World!";
number

表示数字类型。

let num: number = 42;
boolean

表示布尔类型。

let bool: boolean = true;
symbol

表示唯一不可变的值,通常用作对象属性的键。

const sym: symbol = Symbol("key");
null

表示空值或不存在的对象。

let n: null = null;
undefined

表示未定义的值。

let undef: undefined = undefined;
void

表示没有返回值的函数。

function logMessage(): void {
  console.log("Hello, World!");
}
引用类型
object

表示非原始类型,即除原始类型外的类型。

let obj: object = { key: "value" };
any

表示任意类型,可以忽略类型检查。

let anyValue: any = "Hello, World!";
unknown

any 类似,但是类型安全。在使用 unknown 类型的变量前,需要先进行类型检查。

let unknownValue: unknown = "Hello, World!";
if (typeof unknownValue === "string") {
  console.log(unknownValue.toUpperCase());
}
never

表示永远不会发生的值的类型,通常用于描述抛出异常或无法正常终止的函数返回类型。

function throwError(message: string): never {
  throw new Error(message);
}

function infiniteLoop(): never {
  while (true) {
    // do something
  }
}
数组类型
Array

表示一个元素为指定类型的数组。

let arr: Array<string> = ["Hello", "World"];

或者可以使用 [] 简写语法:

let arr: string[] = ["Hello", "World"];
元组类型
[T1, T2, ...]

表示一个固定长度和类型的数组。

let tuple: [number, string] = [42, "Hello"];
console.log(tuple[0]); // 42
console.log(tuple[1]); // Hello
函数类型
(args: Types) => ReturnType

表示函数的类型,包括参数类型和返回类型。

type AddFunc = (a: number, b: number) => number;

const add: AddFunc = (a, b) => {
  return a + b;
}

console.log(add(1, 2)); // 3
类类型
class

表示一个类的类型。

class Person {
  constructor(public name: string, public age: number) {}

  sayHello() {
    console.log(`Hello, my name is ${this.name} and I'm ${this.age} years old.`);
  }
}

let person: Person = new Person("Alice", 18);
person.sayHello(); // Hello, my name is Alice and I'm 18 years old.

提示:以上只是 TypeScript 类型系统中的一些常见类型,还有很多其他高级的类型和特性可以使用。可以参考官方文档以获得更详细的信息。