TypeScript 报错信息解决方案
// 假设我们有一个函数,它接受一个字符串参数并返回一个数字:
function stringToNumber(value: string): number {
return parseInt(value, 10);
}
// 使用时,如果传入的不是数字字符串,可能会出现NaN问题:
const result = stringToNumber('abc'); // 这里会报错,因为'abc'不能转换为数字
// 解决方案:
// 1. 使用TypeScript的类型守卫进行检查:
function stringToNumberSafe(value: string | number): number | undefined {
if (typeof value === 'string') {
const num = parseInt(value, 10);
return isNaN(num) ? undefined : num;
}
return value;
}
// 使用时,如果传入的不是数字字符串,返回undefined:
const safeResult = stringToNumberSafe('abc'); // 现在返回undefined,而不是NaN
// 2. 使用TypeScript的自定义错误类型:
interface StringToNumberError {
error: 'stringToNumberError';
message: 'Invalid string for number conversion';
}
function stringToNumberWithError(value: string): number | StringToNumberError {
const num = parseInt(value, 10);
return isNaN(num) ? { error: 'stringToNumberError', message: 'Invalid string for number conversion' } : num;
}
// 使用时,处理可能的错误:
const errorResult = stringToNumberWithError('abc');
if ((errorResult as StringToNumberError).error) {
console.error((errorResult as StringToNumberError).message);
} else {
// 使用转换后的数字
}
这个例子展示了两种处理TypeScript错误的方法:一种是返回undefined
来避免错误值,另一种是使用自定义错误类型来更明确地处理错误情况。开发者可以根据具体情况选择适合的解决方案。
评论已关闭