```ts
export function runLengthEncode(input: string): string {
    if (typeof input !== 'string') throw new Error('Input must be a string');
  
    let result = '';
    let currentChar = input[0];
    let count = 1;
  
    for (let i = 1; i < input.length; i++) {
        if (input[i] === currentChar) {
            count++;
        } else {
            result += `${currentChar}${count}`;
            currentChar = input[i];
            count = 1;
        }
    }
  
    return result + `${currentChar}${count}`;
}
```