diff --git a/src/helpers/index.ts b/src/helpers/index.ts index 18c7315..42e54e4 100644 --- a/src/helpers/index.ts +++ b/src/helpers/index.ts @@ -46,7 +46,7 @@ export function isReactComponent(classDeclaration: ts.ClassDeclaration, typeChec /** * Determine if a ts.HeritageClause is React HeritageClause * - * @example `extends React.Component<{}, void>` is a React HeritageClause + * @example `extends React.Component<{}, {}>` is a React HeritageClause * * @todo: this is lazy. Use the typeChecker instead * @param clause 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 6aa9d1d..826f9d3 100644 --- a/src/transforms/react-js-make-props-and-state-transform.ts +++ b/src/transforms/react-js-make-props-and-state-transform.ts @@ -106,7 +106,7 @@ export function reactJSMakePropsAndStateInterfaceTransformFactoryFactory(typeChe const initialStateIsVoid = initialState.kind === ts.SyntaxKind.VoidKeyword; const collectedStateTypes = getStateLookingForSetStateCalls(classDeclaration, typeChecker); if (!collectedStateTypes.length && initialStateIsVoid) { - return initialState; + return ts.createTypeLiteralNode([]); } if (!initialStateIsVoid) { collectedStateTypes.push(initialState) diff --git a/test/end-to-end/basic/output.tsx b/test/end-to-end/basic/output.tsx index f0b58a2..c1c9a80 100644 --- a/test/end-to-end/basic/output.tsx +++ b/test/end-to-end/basic/output.tsx @@ -1,7 +1,7 @@ import * as React from 'react'; type MyComponentProps = {}; -type MyComponentState = void; +type MyComponentState = {}; export default class MyComponent extends React.Component { render() { diff --git a/test/react-hoist-generics-transform/propless-stateless/input.tsx b/test/react-hoist-generics-transform/propless-stateless/input.tsx index d61f77b..ab0d702 100644 --- a/test/react-hoist-generics-transform/propless-stateless/input.tsx +++ b/test/react-hoist-generics-transform/propless-stateless/input.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; -export default class MyComponent extends React.Component<{}, void> { +export default class MyComponent extends React.Component<{}, {}> { render() { return
; } diff --git a/test/react-hoist-generics-transform/propless-stateless/output.tsx b/test/react-hoist-generics-transform/propless-stateless/output.tsx index 904d02c..22548c4 100644 --- a/test/react-hoist-generics-transform/propless-stateless/output.tsx +++ b/test/react-hoist-generics-transform/propless-stateless/output.tsx @@ -1,7 +1,7 @@ import * as React from 'react'; type MyComponentProps = {}; -type MyComponentState = void; +type MyComponentState = {}; export default class MyComponent extends React.Component { render() { return
; diff --git a/test/react-js-make-props-and-state-transform/propless-stateless/output.tsx b/test/react-js-make-props-and-state-transform/propless-stateless/output.tsx index d61f77b..ab0d702 100644 --- a/test/react-js-make-props-and-state-transform/propless-stateless/output.tsx +++ b/test/react-js-make-props-and-state-transform/propless-stateless/output.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; -export default class MyComponent extends React.Component<{}, void> { +export default class MyComponent extends React.Component<{}, {}> { render() { return
; } diff --git a/test/react-js-make-props-and-state-transform/static-proptypes-getter-simple/output.tsx b/test/react-js-make-props-and-state-transform/static-proptypes-getter-simple/output.tsx index cd26785..8f1e78d 100644 --- a/test/react-js-make-props-and-state-transform/static-proptypes-getter-simple/output.tsx +++ b/test/react-js-make-props-and-state-transform/static-proptypes-getter-simple/output.tsx @@ -2,7 +2,7 @@ import * as React from 'react'; export default class MyComponent extends React.Component<{ foo: string; - }, void> { + }, {}> { static get propTypes() { return { foo: React.PropTypes.string.isRequired, 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 6c2e28c..beaa5e4 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 @@ -19,7 +19,7 @@ export default class MyComponent extends React.Component<{ stringRequired: string; nodeRequired: number | string | JSX.Element; elementRequired: JSX.Element; - }, void> { + }, {}> { static propTypes = { any: React.PropTypes.any, array: React.PropTypes.array, diff --git a/test/react-js-make-props-and-state-transform/static-proptypes-simple/output.tsx b/test/react-js-make-props-and-state-transform/static-proptypes-simple/output.tsx index 1239162..2f06d43 100644 --- a/test/react-js-make-props-and-state-transform/static-proptypes-simple/output.tsx +++ b/test/react-js-make-props-and-state-transform/static-proptypes-simple/output.tsx @@ -2,7 +2,7 @@ import * as React from 'react'; export default class MyComponent extends React.Component<{ foo: string; - }, void> { + }, {}> { static propTypes = { foo: React.PropTypes.string.isRequired, };