npm.io
7.0.5 • Published 2 years ago

@types/superfine

Licence
MIT
Version
7.0.5
Deps
0
Size
6 kB
Vulns
0
Weekly
0
Stars
51.4K

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 1536 GMT
  • Dependencies: none

Credits

These definitions were written by jameswilddev.