Не все методы Braintree HostedFields доступны для машинописного текста?

Я использую Braintree Sandbox в своем проекте ReactJs с машинописным текстом.

Согласно Braintree Docs для фокуса, поле может сфокусироваться с помощью метода .focus().

hostedFieldsInstance.focus('number', function (focusErr) {
  if (focusErr) {
    console.error(focusErr); 
  }
});

Проблема: в моем файле typeScript hostedFieldsInstance не показывает метод the.focus() как допустимый метод. Я получаю следующую ошибку:

Property 'focus' does not exist on type 'HostedFields'.ts(2339)

VS Code также предлагает только несколько существующих методов Braintree, но не .focus():

введите здесь описание изображения


person codingrohtak    schedule 27.10.2020    source источник


Ответы (1)


Определения TS из DefinitelyTyped не включайте эту функцию, но это не значит, что вы не можете вызывать ее в любом случае. Ваши варианты включают в себя:

  • Обход проверки компилятора TS в этом случае ((hostedFields as any).focus(...))
  • Написание собственных определений типов для BrainTree, импорт существующих из DefinitelyTyped и переопределение их для добавления того, что вам нужно.
  • Ожидание перезаписи BrainTree TS (см. этот комментарий)
person michele b    schedule 02.11.2020