from typing import List


def _calculate_slice_timings(repetition_time: float, volume_count: int) -> List[float]:
    """
    Returns the slice timings in a list.

    Slices must be interleaved in the + direction.

    Parameters
    ----------
    repetition_time : float
        Repetition time of each scan in the functional image.
    volume_count : int
        Number of volumes in the functional image.

    Returns
    -------
    list
        List of slice timings.
    """
    # Generate a slice order of length volume_count in interleaved order.
    slice_order = list(range(0, volume_count, 2)) + list(range(1, volume_count, 2))

    # Calculate the slice timing list from the slice order.
    slice_timings = [slice / volume_count * repetition_time for slice in slice_order]
    return slice_timings