Skip to content
This repository was archived by the owner on Nov 27, 2023. It is now read-only.

Commit c2a2542

Browse files
committed
feat: add support for symbol propType
1 parent 71caffe commit c2a2542

File tree

4 files changed

+17
-5
lines changed

4 files changed

+17
-5
lines changed

Diff for: README.md

+13-5
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ Create typescript definitions files (d.ts) from react components.
1515

1616
* ES6 and ES7 class syntax
1717
* Most PropTypes
18-
* any, array, bool, func, number, object, string, node, element, oneOfType, arrayOf
18+
* any, array, bool, func, number, object, string, node, element, oneOfType, arrayOf, symbol
1919
* required PropTypes
2020
* instanceOf PropTypes (when using API and giving a resolve function)
2121
* jsdoc
@@ -39,11 +39,19 @@ npm install -g react-to-typescript-definitions
3939
### CLI
4040

4141
```sh
42-
# Create a definition which exports a module named 'module-name'
43-
cat <some/react/component.jsx> |react2dts --name module-name
42+
Usage
43+
$ react2dts [--module-name <name> | --top-level-module]
4444

45-
# Create a definition which exports top level definitions
46-
cat <some/react/component.jsx> |react2dts --top-level-module
45+
react2dts reads from stdin to process a file.
46+
47+
Options
48+
--module-name, --name name of the module to create
49+
--top-level-module if the created module should live in top-level
50+
51+
Examples
52+
$ cat <some/react/component.jsx> |react2dts --module-name module-name
53+
54+
$ cat <some/react/component.jsx> |react2dts --top-level-module
4755
```
4856
4957
### API

Diff for: src/types.ts

+2
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,8 @@ export function get(astq: astqts.ASTQ, propertyAst: any, propTypesName: string|u
3939
return getTypeDeclaration(dom.create.namedTypeReference('React.ReactNode'), !required);
4040
case 'element':
4141
return getTypeDeclaration(dom.create.namedTypeReference('React.ReactElement<any>'), !required);
42+
case 'symbol':
43+
return getTypeDeclaration(dom.create.typeof(dom.create.namedTypeReference('Symbol')), !required);
4244
}
4345

4446
const [, complexTypeName, typeAst] = getComplexTypeName(astq, propertyAst, propTypesName);

Diff for: tests/es6-class.d.ts

+1
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ declare module 'component' {
2121
requiredAny: any;
2222
requiredUnion: any[] | boolean;
2323
requiredArrayOf: string[];
24+
requiredSymbol: typeof Symbol;
2425
}
2526
export class Component extends React.Component<ComponentProps, any>{
2627
}

Diff for: tests/es6-class.jsx

+1
Original file line numberDiff line numberDiff line change
@@ -41,4 +41,5 @@ Component.propTypes = {
4141
React.PropTypes.bool
4242
]).isRequired,
4343
requiredArrayOf: React.PropTypes.arrayOf(React.PropTypes.string).isRequired,
44+
requiredSymbol: React.PropTypes.symbol.isRequired,
4445
};

0 commit comments

Comments
 (0)