diff --git a/types/index.d.ts b/types/index.d.ts index 9bfa1ed..9986a75 100644 --- a/types/index.d.ts +++ b/types/index.d.ts @@ -1,8 +1,15 @@ // TypeScript Version: 3.7 -import {Attributes, Element, Node} from 'xast' +import {Element, Node} from 'xast' -type Children = string | Node | Children[] +type Children = string | Node | number | Children[] + +type Primitive = null | undefined | string | number + +/** + * Extending Attributes to Support JS Primitive Types + */ +type Attributes = Record /** * Create XML trees in xast. diff --git a/types/test.ts b/types/test.ts index 2965c93..855264b 100644 --- a/types/test.ts +++ b/types/test.ts @@ -15,11 +15,18 @@ x('urlset', {xmlns}) // $ExpectType Element x('urlset', {xmlns}, 'string') // $ExpectType Element x('urlset', {xmlns}, ['string', 'string']) // $ExpectType Element x('urlset', {xmlns}, x('loc'), 'string') // $ExpectType Element +x('urlset', {xmlns}, x('loc'), 100) // $ExpectType Element x('urlset', {xmlns}, x('loc')) // $ExpectType Element x('urlset', {xmlns}, x('loc'), x('loc')) // $ExpectType Element x('urlset', {xmlns}, [x('loc'), x('loc')]) // $ExpectType Element x('urlset', {xmlns}, []) // $ExpectType Element +const xmlNumberAttribute = 100 +x('urlset', {xmlNumberAttribute}, 'string') // $ExpectType Element +x('urlset', {xmlNumberAttribute}, 100) // $ExpectType Element +x('urlset', {xmlNumberAttribute}, x('loc'), 100) // $ExpectType Element +x('urlset', {xmlNumberAttribute}, []) // $ExpectType Element + x() // $ExpectError x(false) // $ExpectError x('urlset', x('loc'), {xmlns}) // $ExpectError