```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) {
    if (typeof override !== 'string') {
      throw new Error('each override must be a string');
    }

    const [name, value] = override.split(/=(.+)/, 2);

    if (!name || !base.hasOwnProperty(name)) {
      throw new Error(`invalid override: ${override}`);
    }

    result[name] = value || '';
  }

  return result;
}
```