Typescript doesn't know how to deal with member.userin your foreach, you need to put the logic in a statement typeof if:
return angular.forEach<resources.IMember>(this.project.members, (member: resources.IMember) => {
var memberUser = member.user;
if(typeof memberUser === 'number'){
return memberUser === user.id;
} else if (typeof member.user === 'object') {
return memberUser.id === user.id;
}
}).length > 0;
Using typeofTypeScript, you can specify which type you want to use at which point.
Otherwise, if you know that your list contains only ISimpleUser, you can use member.userievar memberUser = <ISimpleUser> member.user;
source
share