Как добавить атрибуты к существующим элементам HTML в TypeScript / JSX?

Кто-нибудь знает, как правильно добавить / расширить все собственные атрибуты HTML-элементов с помощью пользовательских?

Сдокументация TypeScript для слияния интерфейсовЯ думал, что я мог бы просто сделать это:

interface HTMLElement {
    block?: BEM.Block;
    element?: BEM.Element;
    modifiers?: BEM.Modifiers;
}

<div block="foo" />; // error

Но я получаю следующую ошибку Intellisense в vscode 1.6.1 (последняя версия):

[ts] Свойство 'block' не существует для типа 'HTMLProps'.

HTMLProps на что они ссылаютсяReact.HTMLProps<T> иdiv Элемент объявлен для использования следующим образом:

namespace JSX {
    interface IntrinsicElements {
        div: React.HTMLProps<HTMLDivElement>
    }
}

Я попытался изменитьdiv, но безрезультатно.

Связанные с:https://github.com/Microsoft/TypeScript/issues/11684

Редактировать: Вот что в итоге сработало для меня:

declare module 'react' {
    interface HTMLAttributes<T> extends DOMAttributes<T> {
        block?: string
        element?: string
        modifiers?: Modifiers // <-- custom interface
    }
}

Ответы на вопрос(2)

Ваш ответ на вопрос