Difference between extending and intersecting interfaces in TypeScript?