isFile.js

import getTag from './internals/getTag';
import { fileTag, stringUndefined } from './internals/native';
// File 对象是否存在
const fileExisted = typeof File !== stringUndefined;
/**
 * 检查值是否为 `File` 对象。
 *
 * 浏览器环境的 `File` 对象,或其他继承自 `File` 的实例,都将返回 `true`。
 *
 * @alias module:Language.isFile
 * @since 1.11.0
 * @see {@link https://developer.mozilla.org/zh-CN/docs/Web/API/File | File}
 * @param {*} value 要检查的值。
 * @returns {boolean} 如果值为 `File` 对象,返回 `true`,否则返回 `false`。
 * @example
 *
 * isFile(new File([], 'test.txt')); // true
 *
 * isBlob(new Blob(['a'])); // false
 *
 * isFile({}); // false
 *
 * isFile('2012'); // false
 *
 */
function isFile(value) {
    if (fileExisted && value instanceof File) {
        return true;
    }
    return getTag(value) === fileTag;
}
export default isFile;