```ts
export function applyOverrides(base: Record<string, string>, overrides: string[]): Record<string, string> {
    if (!Array.isArray(overrides)) {
        throw new Error("overrides must be an array");
    }

    const result = { ...base };

    for (const override of overrides) {
        const parts = override.split("=");
        if (parts.length !== 2 || parts[0] === "") {
            throw new Error(`invalid override: ${override}`);
        }
        if (!result.hasOwnProperty(parts[0])) {
            throw new Error(`override name not in base: ${parts[0]}`);
        }
        result[parts[0]] = parts[1];
    }

    return result;
}
```