diff --git a/src/typedefs/ConstructorOptions.ts b/src/typedefs/ConstructorOptions.ts index f2921a93..441892f4 100644 --- a/src/typedefs/ConstructorOptions.ts +++ b/src/typedefs/ConstructorOptions.ts @@ -5,8 +5,9 @@ import type { ConstructorOverrides } from './ConstructorOverrides'; * @see https://github.com/pixijs/pixi-react/issues/500 */ export type ConstructorOptions any> = - T extends new (...args: any[]) => infer Instance - ? Instance extends keyof ConstructorOverrides - ? ConstructorOverrides[Instance] - : ConstructorParameters[0] + Extract extends [T, infer R] + ? unknown extends R + ? ConstructorParameters[0] + : R : unknown; + diff --git a/src/typedefs/ConstructorOverrides.ts b/src/typedefs/ConstructorOverrides.ts index 5e17aaeb..046ec053 100644 --- a/src/typedefs/ConstructorOverrides.ts +++ b/src/typedefs/ConstructorOverrides.ts @@ -22,5 +22,4 @@ export type ConstructorOverrides = | [typeof DisplacementFilter, DisplacementFilterOptions] | [typeof Filter, FilterOptions] | [typeof NoiseFilter, NoiseFilterOptions] - | [typeof Text, TextOptions] - | unknown; + | [typeof Text, TextOptions]; diff --git a/test/unit/typedefs/PixiElements.test.tsx b/test/unit/typedefs/PixiElements.test.tsx index cb82365e..fec13d7d 100644 --- a/test/unit/typedefs/PixiElements.test.tsx +++ b/test/unit/typedefs/PixiElements.test.tsx @@ -13,10 +13,11 @@ describe('PixiElements', () => { /* noop */ }} /> + ); - expect(elements.props.children).to.have.length(3); + expect(elements.props.children).to.have.length(4); expect(elements.props.children[0].type).to.equal('graphics'); expect(elements.props.children[0].props.draw).to.be.a('function'); @@ -27,5 +28,8 @@ describe('PixiElements', () => expect(elements.props.children[2].type).to.equal('alphaFilter'); expect(elements.props.children[2].props.alpha).to.equal(0.5); + + expect(elements.props.children[3].type).to.equal('pixiText'); + expect(elements.props.children[3].props.text).to.equal('Hello, World!'); }); });