loadFlag
根据国家代码获取 SVG 国旗图标。模块 tinyval-phone/flags。
签名
ts
function loadFlag(code: string): Promise<string | undefined>
function flagCodes(): string[]
function setFlags(flags: Record<string, FlagSource> | ((code: string) => string | undefined | Promise<string | undefined>)): void
function resetFlags(): void
type FlagSource = string | (() => string | undefined | Promise<string | undefined>) | null注意事项
- 返回 SVG 标记(
'<svg …>');未知代码返回undefined。代码不区分大小写:'RU'和'ru'都可以。 - 每个国旗都是独立的模块,因此该函数是异步的:国旗在首次使用时加载。加载器本身约 3 kB gzip,单个国旗 150 字节到 1 kB。
- 国旗比例为 3:2,
viewBox="0 0 513 342"。尺寸通过 CSS 设置。 - 如果需要文件而不是标记 —— 使用
tinyval-phone/flags/<代码>.svg,见 国旗图标。 setFlags用于替换国旗:按代码的对象(null—— 无国旗)或适用于全部的函数。按代码设置的国旗优先于函数;函数返回undefined时使用内置国旗。见 自定义国家和国旗。
示例
ts
import { loadFlag, flagCodes } from 'tinyval-phone/flags';
const el = document.querySelector('.flag')!;
el.innerHTML = (await loadFlag('jp')) ?? '';
await loadFlag('zz'); // undefined
flagCodes().length; // 257