typescript 类型运算探讨
在TypeScript中,类型操作包括类型联合、类型交叉、类型别名和类型守卫等。以下是一些基本的类型操作示例:
// 类型联合
type UnionType = string | number;
// 类型交叉
interface A { a: string }
interface B { b: number }
type IntersectionType = A & B;
// 类型别名
type AliasType = string[];
// 类型守卫
function isString(arg: unknown): arg is string {
return typeof arg === "string";
}
// 使用示例
let value: UnionType;
value = "hello"; // OK
value = 123; // OK
let obj: IntersectionType;
obj = { a: "hello", b: 456 }; // OK
let arr: AliasType;
arr = ["hello", "world"]; // OK
let unknownValue: unknown;
unknownValue = "test";
if (isString(unknownValue)) {
console.log(unknownValue.toUpperCase()); // OK,在这里unknownValue类型被缩小为string
}
这些操作可以让你在TypeScript中更精细地控制类型,从而在编译时发现类型错误。
评论已关闭