
Product
Rust Support Now in Beta
Socket's Rust support is moving to Beta: all users can scan Cargo projects and generate SBOMs, including Cargo.toml-only crates, with Rust-aware supply chain checks.
@xandr/react-docgen-typescript
Advanced tools
[](https://travis-ci.org/styleguidist/react-docgen-typescript)
A simple parser for React properties defined in TypeScript instead of propTypes.
It can be used with React Styleguidist.
npm install --save-dev react-docgen-typescript
Include following line in your styleguide.config.js
:
propsParser: require('react-docgen-typescript').withDefaultConfig([parserOptions]).parse
or if you want to use custom tsconfig file
propsParser: require('react-docgen-typescript').withCustomConfig('./tsconfig.json', [parserOptions]).parse
propFilter:
{
skipPropsWithName?: string[] | string;
skipPropsWithoutDoc?: boolean;
}
or
(props: PropItem, component: Component) => boolean
Note: children
without a doc comment will not be documented.
componentNameResolver:
(exp: ts.Symbol, source: ts.SourceFile) => string | undefined | null | false
If a string is returned, then the component will use that name. Else it will fallback to the default logic of parser.
Styled components example:
componentNameResolver: (exp, source) => exp.getName() === 'StyledComponentClass' && getDefaultExportForFile(source);
The parser exports
getDefaultExportForFile
helper through its public API.
In the example folder you can see React Styleguidist integration.
The component Column.tsx
import * as React from 'react';
import { Component } from 'react';
/**
* Column properties.
*/
export interface IColumnProps {
/** prop1 description */
prop1?: string;
/** prop2 description */
prop2: number;
/**
* prop3 description
*/
prop3: () => void;
/** prop4 description */
prop4: 'option1' | 'option2' | 'option3';
}
/**
* Form column.
*/
export class Column extends Component<IColumnProps, {}> {
render() {
return <div>Test</div>;
}
}
Will generate the following stylesheet:
The functional component Grid.tsx
import * as React from 'react';
/**
* Grid properties.
*/
export interface IGridProps {
/** prop1 description */
prop1?: string;
/** prop2 description */
prop2: number;
/**
* prop3 description
*/
prop3: () => void;
/** Working grid description */
prop4: 'option1' | 'option2' | 'option3';
}
/**
* Form Grid.
*/
export const Grid = (props: IGridProps) => {
const smaller = () => {return;};
return <div>Grid</div>;
};
Will generate the following stylesheet:
The typescript is pretty complex and there are many different ways how to define components and their props so it's realy hard to support all these use cases. That means only one thing, contributions are highly welcome. Just keep in mind that each PR should also include tests for the part it's fixing.
Thanks to all contributors without their help there wouldn't be a single bug fixed or feature implemented. Check the contributors tab to find out more. All those people supported this project. THANK YOU!
The integration with React Styleguidist wouldn't be possible without Vyacheslav Slinko pull request #118 at React Styleguidist.
FAQs
[](https://travis-ci.org/styleguidist/react-docgen-typescript)
The npm package @xandr/react-docgen-typescript receives a total of 0 weekly downloads. As such, @xandr/react-docgen-typescript popularity was classified as not popular.
We found that @xandr/react-docgen-typescript demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 5 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Product
Socket's Rust support is moving to Beta: all users can scan Cargo projects and generate SBOMs, including Cargo.toml-only crates, with Rust-aware supply chain checks.
Product
Socket Fix 2.0 brings targeted CVE remediation, smarter upgrade planning, and broader ecosystem support to help developers get to zero alerts.
Security News
Socket CEO Feross Aboukhadijeh joins Risky Business Weekly to unpack recent npm phishing attacks, their limited impact, and the risks if attackers get smarter.