0

我在 JS ( https://github.com/format-message/format-message ) 中使用了一个国际化库,其中包含一个接受模板文字和对象的函数。模板文字没有任何插入的 JS 变量,但文本必须用反引号而不是引号括起来,例如在翻译 ICU 格式的复数变体时。有没有办法在 Bucklescript 中对外部函数的模板文字参数进行类型检查?

编辑:我目前的代码如下所示:

[@bs.module] external i18n : (string, Js.Dict.t(string)) => string = "format-message";

let _getDisplayText = (~suffix, ~difference) => {
  let differenceStr = string_of_int(difference);
  let i18nMapArg = Js.Dict.empty();
  Js.Dict.set(i18nMapArg, "difference", differenceStr)
  switch (suffix) {
  | Character => i18n([%bs.raw {|`{difference, plural, one {# character} other {# characters}}`|}], i18nMapArg)
  | None => i18n([%bs.raw {|`{difference, number}`|}], i18nMapArg)
  }
};

的签名i18n()不正确 - 第一个参数应该是模板文字字符串,而不是纯字符串。我可以确保第一个参数以类型安全的方式转换为 JS 模板文字字符串吗?

4

0 回答 0