У меня есть библиотека компонентов React с определенными proptypes, и я рассматриваю возможность перехода на Typcript. Есть ли какой-нибудь инструмент, помогающий переносить код? Вот пример набора реквизитов для простого компонента:
static propTypes = {
active: PropTypes.bool,
children: PropTypes.node,
disabled: PropTypes.bool,
icon: Icon.propTypes.kind,
tabIndex: PropTypes.number
};
Я представляю инструмент, который бы преобразовал это в нечто вроде:
interface IButtonProps {
active: boolean,
children: node,
disabled: boolean,
icon: Icon,
tabIndex: number
}
Не слишком сложно писать, но было бы неплохо, если бы оно уже существовало.
Вы можете использовать пакет response-javascript-to-typescript-transform для автоматического преобразования/переноса React JSX в TypScript TSX.
Код можно преобразовать через CLI, например
react-js-to-ts reactFile.js
Следующий пример взят с веб-сайта проектов. Стандартный компонент реакции, например
class MyComponent extends React.Component {
static propTypes = {
prop1: React.PropTypes.string.isRequired,
prop2: React.PropTypes.number,
};
constructor() {
super();
this.state = { foo: 1, bar: 'str' };
}
render() {
return (
<div>
{this.state.foo}, {this.state.bar}, {this.state.baz}
</div>
);
}
onClick() {
this.setState({ baz: 3 });
}
}
Будет преобразован в следующий файл машинописного текста:
type MyComponentProps = {
prop1: string;
prop2?: number;
};
type MyComponentState = {
foo: number;
bar: string;
baz: number;
};
class MyComponent extends React.Component<MyComponentProps, MyComponentState> {
constructor() {
super();
this.state = { foo: 1, bar: 'str' };
}
render() {
return (
<div>
{this.state.foo}, {this.state.bar}, {this.state.baz}
</div>
);
}
onClick() {
this.setState({ baz: 3 });
}
}
Есть ли какой-либо инструмент, который поможет порту кода
Неа. Либо создайте один (и ссылку назад), либо просто выполните ручную работу или просто используйте any
чтобы быстро начать