Skip to content

Commit 20ee950

Browse files
committed
learn union & intersection
1 parent 476c581 commit 20ee950

File tree

1 file changed

+34
-9
lines changed

1 file changed

+34
-9
lines changed

Diff for: src/latihan.ts

+34-9
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,39 @@
1-
interface CatInfo {
2-
age: number;
3-
breed: string;
1+
// interface CatInfo {
2+
// age: number;
3+
// breed: string;
4+
// }
5+
6+
// type CatName = "miffy" | "boris" | "mordred";
7+
8+
// const cats: Record<CatName, CatInfo> = {
9+
// miffy: { age: 10, breed: "Persian" },
10+
// boris: { age: 5, breed: "Maine Coon" },
11+
// mordred: { age: 16, breed: "British Shorthair" },
12+
// };
13+
14+
// console.log(cats.mordred);
15+
16+
// Intersection typescript
17+
interface Book {
18+
book_id: number;
19+
book_name: string;
20+
}
21+
22+
interface Author {
23+
author_id: number;
24+
author_name: string;
425
}
526

6-
type CatName = "miffy" | "boris" | "mordred";
27+
type intersected_type = Book & Author;
728

8-
const cats: Record<CatName, CatInfo> = {
9-
miffy: { age: 10, breed: "Persian" },
10-
boris: { age: 5, breed: "Maine Coon" },
11-
mordred: { age: 16, breed: "British Shorthair" },
29+
let intersected_type_object1: intersected_type = {
30+
book_id: 101,
31+
book_name: "Typescript is Awesome",
32+
author_id: 202,
33+
author_name: "Tutorialspoint!",
1234
};
1335

14-
console.log(cats.mordred);
36+
console.log("Book Id: " + intersected_type_object1.book_id);
37+
console.log("Book name: " + intersected_type_object1.book_name);
38+
console.log("Author Id: " + intersected_type_object1.author_id);
39+
console.log("Author name: " + intersected_type_object1.author_name);

0 commit comments

Comments
 (0)