Essentially I want to ensure that an object argument contains all of the required properties, but can contain any other properties it wants. For example:
fu
Yes, you can. Try this:
interface IBaz { baz: number; [key: string]: any; } function foo(bar: IBaz) : number { return bar.baz; } foo({ baz: 1, other: 2 });