from typing import Any


def is_valid_type(value: Any, expected_type: str) -> bool:
    """Check if a value matches the expected type.

    Args:
        value: The value to check.
        expected_type: The expected type (string, int, double, boolean, string[], any).

    Returns:
        bool: True if the value matches the expected type, False otherwise.
    """
    if expected_type == "any":
        return True

    if expected_type == "string":
        return isinstance(value, str)

    if expected_type == "int":
        return isinstance(value, int) and not isinstance(value, bool)

    if expected_type == "double":
        return isinstance(value, (int, float)) and not isinstance(value, bool)

    if expected_type == "boolean":
        return isinstance(value, bool)

    if expected_type == "string[]":
        return isinstance(value, list) and all(isinstance(item, str) for item in value)

    return False
