Александра Воробьева
any почти не используем)
export interface State {value: string}export class Input extends React.Component<{}, State> {onChange = value => this.setState({ value })render() {<input value={this.state.value} onChange={this.onChange} />}}
export interface State {value: string}export class Input extends React.Component<{}, State> {onChange = value => this.setState({ value })render() {<input value={this.state.value} onChange={this.onChange} />}}
export interface FormState {value: string}export class Form extends React.Component<{}, FormState> {changeInput = value => this.setState({ value })render() {<Input value={this.state.value} onChange={this.changeInput} />}}
export class Input extends React.Component<Props, {}> {render() {<input value={this.props.value } onChange={this.props.onChange } />}}
shouldComponentUpdateshouldComponentUpdate(nextProps, nextState) {// делаем поверхностную проверку свойствif (nextProps.value !== this.props.value) {}}
export class Button extends React.Component<{}, {}> {render() {<button onClick={(e) => console.log(e);}>Text</button>}}
export class Button extends React.Component<{}, {}> {onClick = e => console.log(e);render() {<button onClick={this.onClick}>Text</button>}}
.button {color: #FFF;background: #F00}
import * as styles from './button.css';<button className={styles.button}>Кнопка</button>
export interface Props {/* значение, задаваемое в поле */value?: string;
/* коллбек вызывается каждый раз при изменении поля*/onChange?: (value: string) => void;}

<PropsDoc target={Button} />
| Свойство | Тип | Описание |
|---|---|---|
| width | string | number | Ширина таблицы. По умолчанию — 100%. Можно указывать в процентах или в пикселях. Число без единиц измерения задает ширину в пикселях. |