有没有办法在Bucklescript类型注释中表示JS模板文字?

时间:2018-10-24 18:32:58

标签: javascript ffi reason bucklescript

我正在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模板文字字符串吗?

0 个答案:

没有答案