Никита, Вы всё правильно используете. Generic Type нужен для currentTarget - это элемент, на которое повешено событие, а target - это элемент, который вызвал событие, у него тип EventTarget.
Т.е. в Вашем случае можно использовать currentTarget e.currentTarget.name
Sulin: это если всегда 3 элемента, а если больше или меньше, то переопределять? такой вариант тоже вполне может быть, но на мой вкус он выглядит менее гибким что ли.
И опять таки при помощи float не получиться автоматически установить равную высоту у элементов или сделать выравнивание по вертикали.
Я не понимаю, чем реализация на flexbox сложнее, чем на float?
Sulin: Да, такой пример можно было бы реализовать и на float, однако он будет работать только в том случае, если у элементов окажется равная высота, иначе всё поедет. Кроме того, при помощи flexbox можно автоматически сделать равную высоту у элементов или сделать выравнивание по вертикали.
Т.е. в Вашем случае можно использовать currentTarget
e.currentTarget.name