¿Cómo agrego atributos a elementos HTML existentes en TypeScript / JSX?

¿Alguien sabe cómo agregar / extender correctamente todos los atributos de elementos HTML nativos con los personalizados?

Conla documentación de TypeScript para fusionar interfaces, Pensé que podría hacer esto:

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

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

Pero obtengo el siguiente error de Intellisense en vscode 1.6.1 (último):

[ts] La propiedad 'bloque' no existe en el tipo 'HTMLProps'.

losHTMLProps&nbsp;a lo que se refieren esReact.HTMLProps<T>&nbsp;y eldiv&nbsp;Se declara que el elemento lo usa así:

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

Traté de volver a declarar eldiv, pero fue en vano.

Relacionado:https://github.com/Microsoft/TypeScript/issues/11684

Editar:&nbsp;Esto es lo que terminó funcionando para mí:

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