TypeError: 参数必须是字符串或数字
这个错误信息表明在某个函数或方法的调用过程中,传递的参数类型不符合预期,期望的是字符串或数字类型,但实际传递的可能是其他类型,如对象、数组、布尔值等。
这种错误常见于需要对用户输入进行处理或格式化的场景,例如:
确保传递给函数的参数是预期的类型。
function processData(input) {
if (typeof input !== 'string' && typeof input !== 'number') {
throw new TypeError('参数必须是字符串或数字');
}
// 处理逻辑...
}
// 正确示例
processData('123'); // 字符串
processData(123); // 数字
// 错误示例
processData({ key: 'value' }); // 抛出 TypeError
在必要时,可以显式地将参数转换为正确的类型。
function formatNumber(value) {
const num = Number(value);
if (isNaN(num)) {
throw new TypeError('参数必须是有效的数字');
}
return num.toFixed(2);
}
console.log(formatNumber('123.45')); // "123.45"
console.log(formatNumber(123)); // "123.00"
在接收用户输入或外部数据时,进行严格的类型检查和验证。
function safeAdd(a, b) {
if (typeof a !== 'number' || typeof b !== 'number') {
throw new TypeError('参数必须是数字');
}
return a + b;
}
try {
console.log(safeAdd('1', 2)); // 抛出 TypeError
} catch (e) {
console.error(e.message);
}
通过上述方法,可以有效避免 TypeError: 参数必须是字符串或数字
这一错误的发生,确保程序的稳定性和可靠性。
领取专属 10元无门槛券
手把手带您无忧上云