📜  允许类型中的特定字符串 - TypeScript (1)

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

允许类型中的特定字符串 - TypeScript

在 TypeScript 中,我们可以声明一个类型为字符串类型,这意味着该变量只能存储一个字符串。如果我们想限制这个字符串类型为特定的字符串,我们可以使用联合类型。

联合类型允许我们在一种类型中定义多个备选类型,以 | 隔开,例如:type MyStringType = "foo" | "bar" | "baz";。这意味着 MyStringType 只能被赋值为 'foo''bar''baz' 中的一个。

示例:

type ResponseType = "success" | "error";

function handleResponse(response: ResponseType) {
  // 只能处理 "success" 或 "error"
  console.log(response);
}

handleResponse("success"); // 输出 "success"
handleResponse("error"); // 输出 "error"
handleResponse("warning"); // 编译错误,因为 "warning" 不是 ResponseType 中定义的值

我们还可以使用 enum 来定义一个类似的结构:

enum MyStringEnum {
  Foo = "foo",
  Bar = "bar",
  Baz = "baz",
}

function handleEnumString(value: MyStringEnum) {
  // 只能处理 MyStringEnum 中的枚举值
  console.log(value);
}

handleEnumString(MyStringEnum.Foo); // 输出 "foo"
handleEnumString(MyStringEnum.Bar); // 输出 "bar"
handleEnumString(MyStringEnum.Baz); // 输出 "baz"
handleEnumString("foobar"); // 编译错误,因为这个字符串不是 MyStringEnum 中的枚举值

总的来说,通过联合类型或枚举,我们可以在 TypeScript 中限制一个字符串类型只能包含特定的字符串值,从而让代码更加健壮且易于维护。