diff --git a/README.md b/README.md index 4c36569..5ca3147 100644 --- a/README.md +++ b/README.md @@ -44,7 +44,7 @@ type MyComponentProps = { type MyComponentState = { foo: number; bar: string; - baz: number | undefined; + baz: number; } class MyComponent extends React.Component { diff --git a/src/transforms/react-js-make-props-and-state-transform.ts b/src/transforms/react-js-make-props-and-state-transform.ts index aacf6f4..8f6b9f6 100644 --- a/src/transforms/react-js-make-props-and-state-transform.ts +++ b/src/transforms/react-js-make-props-and-state-transform.ts @@ -271,13 +271,7 @@ export function reactJSMakePropsAndStateInterfaceTransformFactoryFactory(typeChe } else if (/object/.test(text)) { result = ts.createKeywordTypeNode(ts.SyntaxKind.ObjectKeyword); } else if (/node/.test(text)) { - result = ts.createUnionOrIntersectionTypeNode( - ts.SyntaxKind.UnionType, [ - ts.createKeywordTypeNode(ts.SyntaxKind.NumberKeyword), - ts.createKeywordTypeNode(ts.SyntaxKind.StringKeyword), - ts.createTypeReferenceNode('JSX.Element', []) - ] - ) + result = ts.createTypeReferenceNode('React.ReactNode', []); } else if (/element/.test(text)) { result = ts.createTypeReferenceNode('JSX.Element', []); } else if (/func/.test(text)) { diff --git a/test/react-js-make-props-and-state-transform/static-proptypes-many-props/output.tsx b/test/react-js-make-props-and-state-transform/static-proptypes-many-props/output.tsx index 5607e07..ed66ed3 100644 --- a/test/react-js-make-props-and-state-transform/static-proptypes-many-props/output.tsx +++ b/test/react-js-make-props-and-state-transform/static-proptypes-many-props/output.tsx @@ -8,7 +8,7 @@ export default class MyComponent extends React.Component<{ number?: number; object?: object; string?: string; - node?: number | string | JSX.Element; + node?: React.ReactNode; element?: JSX.Element; anyRequired: any; arrayRequired: any[]; @@ -17,7 +17,7 @@ export default class MyComponent extends React.Component<{ numberRequired: number; objectRequired: object; stringRequired: string; - nodeRequired: number | string | JSX.Element; + nodeRequired: React.ReactNode; elementRequired: JSX.Element; }, {}> { static propTypes = {