param { String } prop param { Object } obj return { Boolean } private export const has = < P extends string , O extends { [ K in P ] : any ; } > ( prop , obj ) : obj is O => obj != null && Object . prototype . hasOwnProperty . call ( obj , prop ) ;