```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 merged = { ...base };

  for (const override of overrides) {
    const eqIndex = override.indexOf('=');
    if (eqIndex === -1 || override[0] === '=') {
      throw new Error("invalid override format: " + override);
    }

    const name = override.substring(0, eqIndex).trim();
    if (name === "") {
      throw new Error("setting name cannot be empty");
    }

    if (!merged.hasOwnProperty(name)) {
      throw new Error("unknown setting name: " + name);
    }

    merged[name] = override.substring(eqIndex + 1).trim();
  }

  return merged;
}
```