From d74a8dd990094e0e94e12e6656ce0f52b5194d19 Mon Sep 17 00:00:00 2001 From: Mohsen Azimi Date: Sun, 16 Jul 2017 16:23:01 -0700 Subject: [PATCH 1/2] Update readme: dynamic state is not optional becasue react state is always optional --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 { From 19088f3355ba08bec9c09f84e751f1158e361ff1 Mon Sep 17 00:00:00 2001 From: Mohsen Azimi Date: Sun, 16 Jul 2017 16:27:32 -0700 Subject: [PATCH 2/2] Use React.ReactNode --- src/transforms/react-js-make-props-and-state-transform.ts | 8 +------- .../static-proptypes-many-props/output.tsx | 4 ++-- 2 files changed, 3 insertions(+), 9 deletions(-) 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 = {