Rex Tils screenshot

Rex Tils

Author Avatar Theme by Hotell
Updated: 14 May 2019
255 Stars

Type safe utils for redux actions, epics, effects, react/preact default props, various type guards and TypeScript utils, React util components

Categories

Overview

Rex-tils is an innovative set of type-safe utilities designed specifically for Redux actions, as well as various guard utilities for React and Angular applications. With a focus on type safety and reducing boilerplate code, it enhances the development experience for users leveraging TypeScript. If you’re looking to improve the robustness and maintainability of your Redux-related projects, rex-tils might just be the solution you need.

Incorporating the latest features of TypeScript, rex-tils supports conditional types and generic arguments, enabling developers to write cleaner, more efficient code. It’s particularly useful for managing Redux actions while ensuring that types are always correctly inferred, making it a must-have tool for modern JavaScript frameworks.

Features

  • Type-safe Action Creators: Utilize createAction<T extends string, P>() to declare action creators that guarantee type safety at compile time, minimizing runtime errors.

  • Efficient Action Filtering: Leverage ofType(...keys:string[]) to filter actions within Epics/Effects, ensuring you only handle relevant actions in Redux workflows.

  • Robust Type Guards: Implement extensive type guards like isBlank(value:any) and isPresent(value:any) to reliably narrow types and make your applications more resilient to errors.

  • Utility Functions: Features functions like noop() for no-operation and identity<T>(value:T):T for identity checks, streamlining common tasks within your codebase.

  • Enum Support: Replace traditional enums with the Enum(...tokens:string[]) utility for efficiently creating enum-like structures that are type-safe and adhere to TypeScript best practices.

  • React Helpers: Use isEmptyChildren(children: ReactNode) to check if React children are empty, or ChildrenAsFunction<T extends AnyFunction>(children: T) to assert that children are functions.

  • Generic Object Manipulation: The pickWithRest<Props, PickedProps>(props: object, pickProps: keyof PickedProps[]) function allows dynamic property picking from objects while maintaining type integrity.

These features combine to create a powerful toolkit that enhances developer productivity by enforcing type safety throughout the Redux action lifecycle and simplifying common tasks in React and Angular applications.