isString
检查给定值是否为字符串。
typescript
const result = isString(value);参考
isString(value)
当您想检查值是否为字符串时,请使用 isString。在区分字符串类型和其他原始类型或对象时非常有用。
typescript
import { isString } from 'es-toolkit/predicate';
// 字符串值
console.log(isString('hello')); // true
console.log(isString('')); // true
console.log(isString('123')); // true
console.log(isString('true')); // true
// 非字符串值
console.log(isString(123)); // false
console.log(isString(true)); // false
console.log(isString(null)); // false
console.log(isString(undefined)); // false
console.log(isString([])); // false
console.log(isString({})); // false
console.log(isString(new String('hello'))); // false (String 对象)对数据验证和类型安全的字符串处理非常有用:
typescript
// 安全的字符串操作
function processText(input: unknown): string {
if (isString(input)) {
// TypeScript 将 input 推断为 string
return input.trim().toLowerCase();
}
// 将其他类型转换为字符串
return String(input);
}
// 使用示例
console.log(processText(' HELLO ')); // 'hello'
console.log(processText(123)); // '123'
console.log(processText(true)); // 'true'
console.log(processText(null)); // 'null'
// 表单数据验证
function validateForm(data: Record<string, unknown>) {
const errors: string[] = [];
if (!isString(data.name) || data.name.length === 0) {
errors.push('姓名为必填项');
}
if (!isString(data.email) || !data.email.includes('@')) {
errors.push('请输入有效的电子邮箱');
}
return {
isValid: errors.length === 0,
errors,
};
}
// 使用示例
console.log(validateForm({ name: 'John', email: 'john@example.com' }));
// { isValid: true, errors: [] }
console.log(validateForm({ name: 123, email: 'invalid-email' }));
// { isValid: false, errors: ['姓名为必填项', '请输入有效的电子邮箱'] }参数
value(unknown): 要检查是否为字符串的值。
返回值
(value is string): 如果值是字符串,则返回 true,否则返回 false。

