在 TypeScript 中,部分类型推断是可能的。以下是一些代码示例,展示了如何使用 TypeScript 进行部分类型推断的解决方法:
示例 1:使用类型断言
function getLength(obj: string | string[]): number {
if (typeof obj === "string") {
return obj.length; // 推断 obj 为 string 类型
} else {
return obj[0].length; // 推断 obj 为 string[] 类型
}
}
示例 2:使用类型守卫
function printValue(obj: number | string): void {
if (typeof obj === "number") {
console.log(obj.toFixed(2)); // 推断 obj 为 number 类型
} else {
console.log(obj.toUpperCase()); // 推断 obj 为 string 类型
}
}
示例 3:使用类型谓词
function isString(obj: unknown): obj is string {
return typeof obj === "string";
}
function printLength(obj: unknown): void {
if (isString(obj)) {
console.log(obj.length); // 推断 obj 为 string 类型
} else {
console.log("Not a string");
}
}
示例 4:使用泛型
function getFirstElement(arr: T[]): T | undefined {
return arr[0];
}
const arr1 = [1, 2, 3];
const arr2 = ["a", "b", "c"];
const result1 = getFirstElement(arr1); // 推断 result1 为 number | undefined 类型
const result2 = getFirstElement(arr2); // 推断 result2 为 string | undefined 类型
通过使用类型断言、类型守卫、类型谓词或泛型,可以在 TypeScript 中实现部分类型推断。这些方法可以根据不同的条件来判断变量的类型,并且在编译时提供类型安全性。
上一篇:部分类型的Flow.js
下一篇:部分类中的部分评估类型