Ответ
Применяю принципы ООП в React и TypeScript. Основные принципы:
- Инкапсуляция - скрытие деталей реализации:
class Counter {
private count = 0;
increment() {
this.count++;
}
getCount() {
return this.count;
}
}
- Наследование - через классовые компоненты (хотя сейчас предпочитаю композицию):
class BaseComponent extends React.Component {
commonMethod() { /* ... */ }
}
- Полиморфизм - через интерфейсы в TypeScript:
interface Renderable {
render(): JSX.Element;
}
class Button implements Renderable {
render() { return <button>Click</button>; }
}
- Абстракция - выделяю общие интерфейсы для похожих сущностей.
На практике чаще использую композицию вместо наследования, особенно с хуками React. ООП помогает структурировать сложную бизнес-логику.