Давайте объявим тип T
с подписью вызова:
type T = () => number;
Давайте также объявим переменную t
этого типа:
declare const t: T;
На площадке TypeScript или IDE, мы сразу видим, что t
типа T
имеет множество методов и свойств, которые мы никогда не объявляли явно: apply
, bind
, caller
и т. д.
Как мы объявляем T
, чтобы он определялся только своей подписью вызова? (TS 3.8.3 +)
Примечательно, что тип Omit<T, "apply" | "bind" | "caller">
равен {}
, а также Omit<T, "">
. Кроме того, Omit<CallableFunction, "">
не является вызываемым типом согласно tsc
.