Я заметил, что в декларациях для некоторых JS-библиотек названия типов функций/методов содержат постфикс delegate.
Правильно ли я понимаю, что это такая перекличка с C#, где делегаты, хотя и являются объектами (т.е. в терминологии TS относятся к уровню значений), но выполняют схожую функцию: позволяют
типобезопасно присвоить переменной ссылку на метод.
Мне хотелось бы точно понимать функцию делегатов в C#, потому что я планирую начать изучение этого языка, но сейчас больше интересует семантика использования этого постфикса в TS.
Выглядит так, что его можно добавлять к любым типам, которые описывают сигнатуры функций в дополнение к тому, как многие добавляют префикс I для объявления интерфейсов (т.е. объектных типов). Хотя официально это и не рекомендуется, но мне кажется более читаемым:
IResponse // вместо ResponseObject
HandlerDelegate // Вместо HandlerFunc