# Interface CallableFunction

interface CallableFunction {
name: string;
[hasInstance](value: any): boolean;
toString(): string;
prototype: any;
length: number;
arguments: any;
caller: Function;
apply<T, R>(this: ((this: T) => R), thisArg: T): R;
apply<T, A, R>(this: ((this: T, ...args: A) => R), thisArg: T, args: A): R;
call<T, A, R>(this: ((this: T, ...args: A) => R), thisArg: T, ...args: A): R;
bind<T>(this: T, thisArg: ThisParameterType<T>): OmitThisParameter<T>;
bind<T, A, B, R>(this: ((this: T, ...args: [...A[], ...B[]]) => R), thisArg: T, ...args: A): ((...args: B) => R);
[metadata]: DecoratorMetadataObject;
}

#### Hierarchy

- Function
  - CallableFunction

- Defined in node_modules/typescript/lib/lib.es5.d.ts:331

#####
Index

### Properties

name
prototype
length
arguments
caller
[metadata]

### Methods

[hasInstance]
toString
apply
call
bind

##
Properties

### `Readonly` name

name: string

Returns the name of the function. Function names are read-only and can not be changed.

Inherited from Function.name

- Defined in node_modules/typescript/lib/lib.es2015.core.d.ts:97

### prototype

prototype: any

Inherited from Function.prototype

- Defined in node_modules/typescript/lib/lib.es5.d.ts:301

### `Readonly` length

length: number

Inherited from Function.length

- Defined in node_modules/typescript/lib/lib.es5.d.ts:302

### arguments

arguments: any

Inherited from Function.arguments

- Defined in node_modules/typescript/lib/lib.es5.d.ts:305

### caller

caller: Function

Inherited from Function.caller

- Defined in node_modules/typescript/lib/lib.es5.d.ts:306

### [metadata]

[metadata]: DecoratorMetadataObject

Inherited from Function.[metadata]

- Defined in node_modules/typescript/lib/lib.esnext.decorators.d.ts:27

##
Methods

### [hasInstance]

- [hasInstance](value): boolean

- Determines whether the given value inherits from this function if this function was used as a constructor function.

  A constructor function can control which objects are recognized as its instances by 'instanceof' by overriding this method.

  #### Parameters

  - value: any

  #### Returns boolean

  Inherited from Function.[hasInstance]

  - Defined in node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts:164

### toString

- toString(): string

- Returns a string representation of a function.

  #### Returns string

  Inherited from Function.toString

  - Defined in node_modules/typescript/lib/lib.es5.d.ts:299

### apply

- apply<T, R>(this, thisArg): R

- Calls the function with the specified object as the this value and the elements of specified array as the arguments.

  #### Type Parameters

  - T
  - R

  #### Parameters

  - this: ((this: T) => R)
    - - (this): R

      - #### Parameters

        - this: T

        #### Returns R

  - thisArg: T

    The object to be used as the this object.

  #### Returns R

  Overrides Function.apply

  - Defined in node_modules/typescript/lib/lib.es5.d.ts:336
- apply<T, A, R>(this, thisArg, args): R

- Calls the function with the specified object as the this value and the elements of specified array as the arguments.

  #### Type Parameters

  - T
  - A extends any[]
  - R

  #### Parameters

  - this: ((this: T, ...args: A) => R)
    - - (this, ...args): R

      - #### Parameters

        - this: T
        - `Rest`...args: A

        #### Returns R

  - thisArg: T

    The object to be used as the this object.

  - args: A

    An array of argument values to be passed to the function.

  #### Returns R

  Overrides Function.apply

  - Defined in node_modules/typescript/lib/lib.es5.d.ts:343

### call

- call<T, A, R>(this, thisArg, ...args): R

- Calls the function with the specified object as the this value and the specified rest arguments as the arguments.

  #### Type Parameters

  - T
  - A extends any[]
  - R

  #### Parameters

  - this: ((this: T, ...args: A) => R)
    - - (this, ...args): R

      - #### Parameters

        - this: T
        - `Rest`...args: A

        #### Returns R

  - thisArg: T

    The object to be used as the this object.

  - `Rest`...args: A

    Argument values to be passed to the function.

  #### Returns R

  Overrides Function.call

  - Defined in node_modules/typescript/lib/lib.es5.d.ts:350

### bind

- bind<T>(this, thisArg): OmitThisParameter<T>

- For a given function, creates a bound function that has the same body as the original function. The this object of the bound function is associated with the specified object, and has the specified initial parameters.

  #### Type Parameters

  - T

  #### Parameters

  - this: T
  - thisArg: ThisParameterType<T>

    The object to be used as the this object.

  #### Returns OmitThisParameter<T>

  Overrides Function.bind

  - Defined in node_modules/typescript/lib/lib.es5.d.ts:357
- bind<T, A, B, R>(this, thisArg, ...args): ((...args: B) => R)

- For a given function, creates a bound function that has the same body as the original function. The this object of the bound function is associated with the specified object, and has the specified initial parameters.

  #### Type Parameters

  - T
  - A extends any[]
  - B extends any[]
  - R

  #### Parameters

  - this: ((this: T, ...args: [...A[], ...B[]]) => R)
    - - (this, ...args): R

      - #### Parameters

        - this: T
        - `Rest`...args: [...A[], ...B[]]

        #### Returns R

  - thisArg: T

    The object to be used as the this object.

  - `Rest`...args: A

    Arguments to bind to the parameters of the function.

  #### Returns ((...args: B) => R)

  - - (...args): R

    - #### Parameters

      - `Rest`...args: B

      #### Returns R

  Overrides Function.bind

  - Defined in node_modules/typescript/lib/lib.es5.d.ts:365