//Alternatively you can mark these properties as optional:
interface IFoo{
bar?:string;
baz?:string;
boo?:string;
}
// Now your simple initialization works
var foo:IFoo = {};
interface MyType extends Record<string,any> {
typesafeProp1?: number,
requiredProp1: string,
}
/**
Record<Keys,Type> is a Utility type in typescript.
It is a much cleaner alternative for key-value pairs
where property-names are not known.
It's worth noting that Record<Keys,Type> is a named alias to {[k: Keys]: Type}
where Keys and Type are generics.
*/