# Partial<T> esto que es en TypeScript?

Unos días a tras me encontré esto en el codebase de la empresa donde trabajo.

```typescript
applicationValues: Partial<ApplicationValues>; 
```

Como ya he comentado anteriormente nunca había trabajado con un codebase en el backend completamente escrito en **Javascript/Typescript**. Esto va siendo un reto interesante por lo que he estado aprendiendo nuevas cosas sobre JS. Hoy le tocó a los **Partials**

Resulta que si tienes un **clase/interfaz** con X atributos obligatorios pero en algún escenario quieres solo usar o enviar/utilizar algunos atributos, es decir no todos dado que son obligatorios, aquí es donde el **Partial** te ayuda. Vemos un ejemplo para entender mejor.

```typescript
interface User {
    id: number;
    name: string;
    age: number;
}

function updateUser(user: Partial<User>): void {
    // Function to update user information
}

// Example usage
const userUpdate: Partial<User> = {
    name: "John"
};

updateUser(userUpdate);
```

Como vemos en este pequeño ejemplo nuestra interfaz **User** tiene **3 atributos obligatorios .** Si en nuestra funcion updateUser solo usamos como atributo el User, tendríamos que **enviar los 3 atributos**.

```typescript
function updateUser(user: User): void {
    // funcion para actualizar el usuario
}
const userUpdate: User = {
     id: 12345,
    name: "Jhon",
    age: 22,
};
```

Entonces usando el `user: Partial<User>` en nuestra función nos permite solo enviar los atributos que querramos.

Saludos a todos y happy coding.
