-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathobjects.ts
39 lines (30 loc) · 1004 Bytes
/
objects.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
export function runObjects(): void {
let person: { name: string, age?: number };
person = {name: 'Kevin', age: 39};
person = {name: 'John'};
console.log(person);
type person = { name: string, age: number };
function getDefaultUser(): person {
return {name: 'Tom', age: 27};
}
function printUser(user: person) {
console.log(`Name: ${user.name}, age: ${user.age}`)
}
let user0 = getDefaultUser();
printUser(user0);
// in
type quitePerson = { name: string, age?: number }
function printUser2(user: quitePerson) {
if ('age' in user) {
console.log(`name: ${user.name}, age: ${user.age}`)
} else {
console.log(`name: ${user.name}`)
}
}
function printUser3({name, age = 24}: { name: string, age?: number }) {
console.log(`name: ${name}, age: ${age}`)
}
printUser2({name: 'Jessica'});
printUser2({name: 'Gloria', age: 19});
printUser3({name: 'Coocoo'});
}