top of page

TypeScript: Call Signature

  • Фото автора: Алик Ким
    Алик Ким
  • 7 апр. 2023 г.
  • 1 мин. чтения

спойлер: какая то бесполезная хрень.


Call Signature - тип или интерфейс, внутри которого помимо свойств есть еще типа одиноко стоящий делегат (ну, тип-метод)

type DescribableFunction = {

description: string;

(someArg: number): boolean;

};

так вот, это - возможность задать тип для функции (чего-то вызываемого), но с доп. свойствами.

JS-овская хрень. типа в JS так можно, значит и в TS должно быть. не очень понятно, где может пригодиться, но я в коде встречал нет-нет.

то есть, экземпляр такого можно вызвать как функцию, а можно читать свойства, как у объекта.


инстанциация :

1. просто объявляем функцию, а на следующей строке присваиваем свойство. типа в тайпскрипте такое специально разрешено, пишут.

const isEven: DescribableFunction = someArg => someArg % 2 === 0; isEven.description = "isEven" doSomething(isEven); // "isEven returned true"

2. или прям сходу:

const isNegative = Object.assign( (someArg: number) => someArg < 0, { description: "isNegative" } ); doSomething(isNegative);


Construct Signature

ключевое слово new перед ~делегатом позволяет использовать реализацию этого интерфейса как конструктор - с помощью ключевого слова new, опять же (Construct Signature).

еще более непонятно, зачем это надо. и люди пишут, что ваще экзотика


пытливый читатель спросит, а зачем я эту бесполезень выложил? отвечу: ну а я что, зря час разбирался с этим?? :)

 
 
 

Недавние посты

Смотреть все

Comments


Околокомпьютерный блог Алика

  • alt.text.label.Facebook

© Околокомпьютерный блог Алика , 2022. Сайт создан на Wix.com

bottom of page