---
title: "Complete | JavaScript maps SDK"
description: "Documentation for MapTiler SDK"
---

> For AI agents: a documentation index is available at [/llms.txt](https://docs.maptiler.com/llms.txt). Markdown versions of all pages are available by appending .md to any URL.

# Type Alias Complete<T>

Complete: {  
    \[P in keyof [Required](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.Required/)<[T](#t)\>\]: [Pick](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.Pick/)<[T](#t), P\> extends [Required](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.Required/)<[Pick](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.Pick/)<[T](#t), P\>\>  
        ? [T](#t)\[P\]  
        : [T](#t)\[P\] | undefined  
}

Makes optional keys required and add the the undefined type.

```typescript
interface Test {
 foo: number;
 bar?: number;
 baz: number | undefined;
}

Complete<Test> {
 foo: number;
 bar: number | undefined;
 baz: number | undefined;
}
```

See [https://medium.com/terria/typescript-transforming-optional-properties-to-required-properties-that-may-be-undefined-7482cb4e1585](https://medium.com/terria/typescript-transforming-optional-properties-to-required-properties-that-may-be-undefined-7482cb4e1585)

#### Type Parameters

-   T
