diff --git a/package.json b/package.json index c1db194..3cd6902 100644 --- a/package.json +++ b/package.json @@ -1,8 +1,9 @@ { "name": "dom-create-element", - "version": "1.0.2", + "version": "1.0.3", "description": "Create DOM elements.", "main": "index.js", + "types": "./types.d.ts", "license": "MIT", "author": { "name": "Baptiste Briel", diff --git a/types.d.ts b/types.d.ts new file mode 100644 index 0000000..31e403f --- /dev/null +++ b/types.d.ts @@ -0,0 +1,32 @@ +export = create; + +type DomCreateElement = (CreateProperties) => HTMLElement; + +type DomCreateElementBase = { + attr?: Array<[string, string]>; +}; + +type DomCreateElementCommon = DomCreateElementBase & { + children?: Array + html?: string; +}; + +type DomCreateElementOther = DomCreateElementCommon & { + selector: string; +}; + +type DomCreateElementImage = DomCreateElementBase & { + selector: 'img' | 'IMG'; + src?: string; + lazyload?: boolean; +}; + +type DomCreateElementAnchor = DomCreateElementCommon & { + selector: 'a' | 'A'; + link?: string; + target?: string; +}; + +declare function create(params:DomCreateElementImage): HTMLImageElement; +declare function create(params:DomCreateElementAnchor): HTMLAnchorElement; +declare function create(params:DomCreateElementOther): HTMLElement; \ No newline at end of file