```python
def plural_of(noun: str) -> str:
    """
    Return the plural of an English noun.
    
    A noun ending in s, x, ch or sh takes es. A noun ending in y after a consonant loses the y and takes ies instead. Every other noun simply takes s.
    """
    if not noun:
        raise ValueError("Input cannot be empty")
    
    # Check for irregular nouns followed by a vowel
    if noun.endswith(('sh', 'ch', 'x')):
        return noun + 'es'
    
    # Check for irregular nouns ending in y after a consonant
    elif noun.endswith('y'):
        return noun[:-1] + 'ies'
    
    # Otherwise, just add 's'
    else:
        return noun + 's'
```