isFile
检查给定值是否为 File 对象。
typescript
const result = isFile(value);参考
isFile(value)
当您想确认某个值是否为 File 实例时,请使用 isFile。File 对象是 Web API 的一部分,表示用户上传的文件或从文件系统获取的文件。与 Blob 对象不同,它包含文件名和最后修改时间等额外信息。
typescript
import { isFile } from 'es-toolkit/predicate';
// File 对象确认
const file = new File(['hello'], 'example.txt', { type: 'text/plain' });
console.log(isFile(file)); // true
// Blob 对象不是 File
const blob = new Blob(['hello'], { type: 'text/plain' });
console.log(isFile(blob)); // false
// 一般对象
console.log(isFile({})); // false
console.log(isFile([])); // false
console.log(isFile('text')); // false
console.log(isFile(null)); // false
console.log(isFile(undefined)); // false可用于验证给定参数是否为有效文件。
typescript
// 文件上传处理器
function handleFileUpload(input: unknown) {
if (isFile(input)) {
console.log(`文件名:${input.name}`);
console.log(`文件大小:${input.size} bytes`);
console.log(`文件类型:${input.type}`);
console.log(`最后修改:${input.lastModified}`);
// 确定是 File,可以安全访问文件相关属性
return input;
}
throw new Error('不是有效的文件');
}在不支持 File 的 JavaScript 执行环境中也能安全处理。
typescript
// 在 Node.js 环境或不支持 File 的环境中也安全
console.log(isFile(new Date())); // false
// 在未定义 File 的环境中也不会发生错误
if (typeof File === 'undefined') {
console.log(isFile({})); // false
}参数
value(unknown): 要检查是否为 File 对象的值。
返回值
(value is File): 如果值为 File 对象则返回 true,否则返回 false。

