Skip to content

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

另请参阅 ​

  • 国旗图标 —— 在 Vue 中使用,或作为文件用于 <img>
  • phoneAuto —— 用 country(value).code 获取国旗