-
Notifications
You must be signed in to change notification settings - Fork 0
/
10_type-utilities.ts
39 lines (30 loc) · 758 Bytes
/
10_type-utilities.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
type Todo = {
title: string;
description: string;
completed: boolean;
}
// Readonly
const todo: Readonly<Todo> = {
title: "Assistir Dark de novo",
description: "Relembrar os detalhes",
completed: false,
}
console.log(todo);
// todo.completed = true;
function updateTodo(todo: Todo, fieldsToUpdate: Partial<Todo>) {
return {...todo, ...fieldsToUpdate }
}
const todo2: Todo = updateTodo(todo, { completed: true })
console.log(todo2);
//// Pick 5 - 1
type TodoPreview = Pick<Todo, "title"|"completed">
const todo3: TodoPreview = {
title: "Fechar Ghost of Tsushima",
completed: false
}
//// Omit 5 - 4
type TodoPreview2 = Omit<Todo, "description">
const todo4: TodoPreview = {
title: "Fechar Ghost of Tsushima",
completed: false
}