Hone logo
Hone
Problems

Implementing a Pure Angular Pipe for String Reversal

This challenge focuses on understanding and implementing Angular pipes, specifically a pure pipe, to transform data within your templates. You'll create a pipe that reverses a given string, providing a practical example of how pipes can enhance template readability and reusability by encapsulating data transformation logic.

Problem Description

You are tasked with creating a custom Angular pipe named ReverseStringPipe. This pipe should take a string as input and return the reversed version of that string.

Key Requirements:

  • Pure Pipe: The pipe must be implemented as a "pure" pipe. This means its transform method will only be called when Angular detects a change to the input value. For a pure pipe, the input should be immutable.
  • transform Method: The pipe must have a transform method that accepts a single string argument.
  • Return Value: The transform method must return a new string that is the reverse of the input string.
  • Angular Integration: The pipe should be usable within Angular templates by importing it into the relevant module and then applying it using the pipe syntax (| reverseString).

Expected Behavior:

When applied to a string in an Angular template, the pipe should display the reversed string.

Edge Cases to Consider:

  • Empty String: How should the pipe handle an empty input string?
  • Strings with Spaces: The reversal should work correctly with strings containing spaces.
  • Special Characters and Numbers: The pipe should correctly reverse strings containing special characters and numbers.

Examples

Example 1:

Input String: "hello"
Output String: "olleh"

Explanation: The pipe takes the string "hello" and returns its reversed version, "olleh".

Example 2:

Input String: "Angular is fun!"
Output String: "!nuf si ralugnA"

Explanation: The pipe correctly reverses a string with spaces and punctuation.

Example 3:

Input String: ""
Output String: ""

Explanation: An empty input string should result in an empty output string.

Constraints

  • The input to the pipe will always be a string or undefined.
  • The pipe's transform method should not mutate the original input string.
  • The pipe should be implemented in TypeScript.

Notes

  • Remember to decorate your class with @Pipe and provide a name property for the pipe.
  • The pure: true option in the @Pipe decorator is the default, but it's good practice to be aware of it.
  • Consider how you might approach reversing a string in JavaScript/TypeScript. A common approach involves splitting the string into an array of characters, reversing the array, and then joining it back into a string.
Loading editor...
typescript