The problem is that development has both a call signature (which can be satisfied by the function) and members (from inheriting keymap).You can't define such an object in one step in Typescript (or Javascript for that matter). When you assign the function the compiler complains that the properties are missing (as it should since they are not there yet). You could do one of two things:
Use Object.assign to build the object in one step
var me: development = Object.assign((code: string)=> console.log(code), keyMapInstance)
Use a type assertion and finish the initialization later
var me: development = <development>((code)=> console.log(code))
me.mark = 10;
me.name ="";
Variant: Make the fields optional,and finish the initialization later
interface development extends Partial<keyMap> {
(code: string): void
}
var me: development = (code)=> console.log(code)
me.mark = 10;
me.name ="";