@types/superfine
TypeScript icon, indicating that this package has built-in type declarations

7.0.5 • Public • Published

Installation

npm install --save @types/superfine

Summary

This package contains type definitions for superfine (https://github.com/jorgebucaran/superfine#readme).

Details

Files were exported from https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/superfine.

index.d.ts

export {};

type HtmlOrSvgElementTagNameMap =
    & HTMLElementTagNameMap
    & Pick<SVGElementTagNameMap, Exclude<keyof SVGElementTagNameMap, keyof HTMLElementTagNameMap>>;

export type Props<TTagName extends keyof HtmlOrSvgElementTagNameMap> =
    & {
        readonly [TAttributeName in keyof HtmlOrSvgElementTagNameMap[TTagName]]?:
            HtmlOrSvgElementTagNameMap[TTagName][TAttributeName];
    }
    & {
        readonly key?: number | string | undefined;
    };

export interface VNode<TTagName extends keyof HtmlOrSvgElementTagNameMap> {
    readonly name: TTagName;
}

type Child<TTagName extends keyof HtmlOrSvgElementTagNameMap> =
    | string
    | VNode<TTagName>;

type Children<TTagName extends keyof HtmlOrSvgElementTagNameMap> =
    | Child<TTagName>
    | ReadonlyArray<Child<TTagName>>;

export function h(
    tagName: "svg",
    props: Props<"svg">,
    children?: Children<keyof SVGElementTagNameMap>,
): VNode<"svg">;

export function h<TTagName extends keyof HTMLElementTagNameMap>(
    tagName: TTagName,
    props: Props<TTagName>,
    children?: Children<(keyof HTMLElementTagNameMap) | "svg">,
): VNode<TTagName>;

export function h<TTagName extends keyof SVGElementTagNameMap>(
    tagName: TTagName,
    props: Props<TTagName>,
    children?: Children<keyof SVGElementTagNameMap>,
): VNode<TTagName>;

export function patch<TTagName extends keyof HtmlOrSvgElementTagNameMap>(
    rootElement: HtmlOrSvgElementTagNameMap[TTagName],
    vNode: VNode<TTagName>,
): void;

declare global {
    namespace JSX {
        interface Element extends VNode<keyof HtmlOrSvgElementTagNameMap> {}
        type IntrinsicElements = {
            readonly [TTagName in keyof HtmlOrSvgElementTagNameMap]: Props<TTagName>;
        };
    }
}

Additional Details

  • Last updated: Tue, 07 Nov 2023 15:11:36 GMT
  • Dependencies: none

Credits

These definitions were written by jameswilddev.

Readme

Keywords

none

Package Sidebar

Install

npm i @types/superfine

Weekly Downloads

6

Version

7.0.5

License

MIT

Unpacked Size

6.07 kB

Total Files

5

Last publish

Collaborators

  • types