找出这个守卫为何会放行一个随后导致崩溃的值。
TypeScript
type Profile = {
name: string;
roles: string[];
};
function isProfile(value: unknown): value is Profile {
return (
typeof value === "object" &&
value !== null &&
"name" in value
);
}
function roleCount(value: unknown): number {
if (!isProfile(value)) return 0;
return value.roles.length;
}