とーますメモ

Ruby on Rails / Goなどの学習メモ

TypeScriptで簡易Sprintfを作成する

Validationメッセージなどのメッセージには決まった文言が入るが、一部を置き換えたい場合などは、テンプレートリテラルよりC言語系で使われるSprintfが便利なのだが、JavaScriptにないため自作した。

export const sprintf = (format: string, ...args: string[]): string => {
  return format.replace(/{(\d+)}/g, (_match, index) => {
    return args[index];
  });
};

sprintf('{0}を入力してください', '名前')
=> '名前を入力してください'

[参考]
javascript - Convert JS sprintf to Typescript equivalent - Stack Overflow
Is there a sprintf equivalent for node.js - Code Examples