我正在JS(Pinterest API documentation)中使用国际化库,该库包含一个接受模板文字和对象的函数。模板文字没有任何内插的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模板文字字符串吗?