📅  最后修改于: 2023-12-03 15:22:31.570000             🧑  作者: Mango
在 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 中限制一个字符串类型只能包含特定的字符串值,从而让代码更加健壮且易于维护。