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

  const result = { ...base };

  for (const override of overrides) {
    const [name, value] = override.split('=', 2);

    if (!name || !value) {
      throw new Error("Each override must have a name and a value separated by an equals sign.");
    }

    if (name === '' || base[name]) {
      result[name] = value;
    }
  }

  return result;
}
```