<!-- Generated by documentation.js. Update this documentation by updating the source code. -->

## destructure

This function destructures with defaults. It should not
have any parameter descriptions.

**Parameters**

-   `$0` **[Object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object)**  (optional, default `{}`)
    -   `$0.phoneNumbers`   (optional, default `[]`)
    -   `$0.emailAddresses`   (optional, default `[]`)
    -   `$0.params` **...any** 

## destructure

Similar, but with an array

**Parameters**

-   `$0` **[Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array)** 
    -   `$0.0`  
    -   `$0.1`  
    -   `$0.2`  

**Examples**

```javascript
destructure([1, 2, 3])
```

## multiply

This function returns the number one.

**Parameters**

-   `a` **[Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array)&lt;[Number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number)>** an array of numbers
-   `b`  

Returns **[Number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number)** numberone

## Sink

This is a sink

**Parameters**

-   `height` **[number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number)** the height of the thing
-   `width` **[number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number)** the width of the thing

### staticProp

This is a property of the sink.

### empty

Is it empty

### aGetter

This is a getter method: it should be documented
as a property.

### hello

This method says hello

## makeABasket

This method returns a basket. The type should not be linked.

Returns **Basket** a basket

## makeASink

This method returns a [sink](#sink). The type should be linked.
It takes a [number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number) which should also be linked.

Returns **[Sink](#sink)** a sink

## functionWithRest

This function takes rest params

**Parameters**

-   `someParams` **...any** 

## functionWithRestAndType

So does this one, with types

**Parameters**

-   `someParams` **...[number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number)** 

## foo

This is an async method

## es6.input

This function returns the number one.

Returns **[Number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number)** numberone

## veryImportantTransform

This tests our support of optional parameters in ES6

**Parameters**

-   `foo`   (optional, default `'bar'`)

## iAmProtected

A protected function

## iAmPublic

A public function

## execute

This is re-exported

## isArrayEqualWith

Regression check for #498

**Parameters**

-   `array1` **[Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array)&lt;T>** 
-   `array2` **[Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array)&lt;T>** 
-   `compareFunction` **function (a: T, b: T): [boolean](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean)**  (optional, default `(a:T,b:T):boolean=>a===b`)

Returns **[boolean](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean)** 

## paramWithMemberType

Regression check for #749

**Parameters**

-   `a` **atype.property** 

Returns **[boolean](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean)** 
