Освоение наследования с помощью фильтров в TypeScript: раскрытие возможностей повторного использования кода