Definitions for htmx attributes in JSX.
You can configure typed-htmx either as pure type declarations, or as a JSX
templating engine.
Configure your tsconfig.json as follows:
An alternative is to include a triple-slash directive wherever you need completions for htmx attributes:
/// <reference types="typed-htmx" />
function MyComponent({ children }) {
  return <div hx-get="/asd">{children}</div>;
  //          ^?: string | undefined
}If your frontend library injects its own JSX types, you'll need to augment it. See the example project for a demo. typed-html and React are supported out of the box.
If you prefer to use JSX only for its templating capabilities in the vein of
typed-html, you can use typed-htmx/typed-html which is included with this
library and optimized for htmx usage:
- Attributes such as hx-valsandhx-headersmay also accept an object literal, which will be stringified on demand.
- Configurable options for sanitization, defaults to a no-op.
Configure your tsconfig.json as follows:
{
  "compilerOptions": {
    "jsx": "react-jsx",
    "jsxImportSource": "typed-htmx/typed-html",
    "moduleResolution": "node16" // or "nodenext"
  }
}
{ "compilerOptions": { "jsx": "react", "moduleResolution": "node16", // or "nodenext" "types": ["typed-htmx" /** and any other types you need */] } }