Как расширить тип HTMLButtonAttribute в JSX - PullRequest
1 голос
/ 28 мая 2019

Я создаю простой компонент кнопки, используя StencilJS, который использует JSX и TypeScript.Текущая стабильная версия не имеет типа для атрибута part.В основном я пытаюсь сделать это:

render() {
   return <button part="live-chat-button">{this.getStartButtonText()} </button>;
}

Но ошибки Typescript с:

Type '{ part: string; }' is not assignable to type 
'ButtonHTMLAttributes<HTMLButtonElement>'. Property
'part' does not exist on type 'ButtonHTMLAttributes<HTMLButtonElement>'.

Помимо обновления до фиксированной альфа-версии , как я могуисправить это?

Заранее спасибо за любую помощь!

1 Ответ

1 голос
/ 28 мая 2019

Вы должны иметь возможность добавлять атрибуты к любому элементу jsx, используя расширение модуля:

declare module '@stencil/core' {
  namespace JSXElements {
    interface ButtonHTMLAttributes<T> {
      part?: string
    }
  }
}

Это должно работать для кнопки.

...