44 lines
969 B
TypeScript
44 lines
969 B
TypeScript
import type {Child, Properties, Result} from './create-h.js'
|
|
|
|
export namespace JSX {
|
|
/**
|
|
* Define the return value of JSX syntax.
|
|
*/
|
|
type Element = Result
|
|
|
|
/**
|
|
* Key of this interface defines as what prop children are passed.
|
|
*/
|
|
interface ElementChildrenAttribute {
|
|
/**
|
|
* Only the key matters, not the value.
|
|
*/
|
|
children?: never
|
|
}
|
|
|
|
/**
|
|
* Disallow the use of functional components.
|
|
*/
|
|
type IntrinsicAttributes = never
|
|
|
|
/**
|
|
* Define the prop types for known elements.
|
|
*
|
|
* For `hastscript` this defines any string may be used in combination with
|
|
* `hast` `Properties`.
|
|
*
|
|
* This **must** be an interface.
|
|
*/
|
|
interface IntrinsicElements {
|
|
[name: string]:
|
|
| Properties
|
|
| {
|
|
/**
|
|
* The prop that matches `ElementChildrenAttribute` key defines the
|
|
* type of JSX children, defines the children type.
|
|
*/
|
|
children?: Child
|
|
}
|
|
}
|
|
}
|