Ngobrolin TypeScript - Ngobrolin WEB ep24
Yuk mari kita diskusi dan ngobrol ngalor-ngidul tentang dunia web. Agar tetap up-to-date dengan teknologi web terkini. Topik, tautan dan pertanyaan menarik bisa dilayangkan ke https://bit.ly/ngobrolinweb Kunjungi https://ngobrol.in untuk catatan, tautan dan informasi topik lainnya.
0:20Hai, halo-halo semuanya. Selamat malam, selamat hari selasa.
0:27Selasa malam makunya.
0:29Ngobrolin weh.
0:31Ngobrolin weh. Dan sudah ada yang ngegas nih, dua orang ngegas.
0:36Ada Hans Hans.
0:38Ada Jeremy Ando, wah namanya mantap.
0:43Gimana kabarnya semuanya? Malam hari ini mudah-mudahan sehat ya.
0:48Dingin.
0:49Dingin ya?
0:50Iya.
0:51Ini hujan mulu.
0:52Jepang, Jepangas.
0:54Jepangas.
0:55Engga hujan disana?
0:57Engga. So, kering panas soalnya apa sih? Merapi.
1:01Oh iya, merapi gimana tuh kabarnya tuh?
1:04Iya, enggak apa-apa sih. Cuma aja, maksudnya enggak, enggak bahaya.
1:07Cuma jadi panas aja. Cuma aja.
1:10Ada Audi, ada Nuriski, halo-halo. Oh Bekasi dingin sekarang ya Bekasi ya.
1:16Oh Planet Bekasi dingin.
1:18Planet Bekasi dingin, lagi dingin ya. Lagi musim dingin ya.
1:23Planet Bekasi. Halo, walaikumsalam.
1:27Walaikumsalam.
1:29Jadi malam hari ini kita ketemu lagi, seperti biasa masih bertiga, format standar.
1:35Ada Riza, ada Irvan, dan juga ada Eka. Malam ini kita akan ngobrolin TypeScript.
1:40Nah, saya juga penasaran nih, teman-teman disini yang udah pakai TypeScript berapa orang?
1:45Boleh, boleh itu ya. Boleh tunjuk tangan di kolom chat gitu.
1:49Tunjuk tangan.
1:50Yang belum, ya tunjuk tangan. Pakai emoji gitu kan, tunjuk tangan ada ya.
1:55Terus masih JavaScript yang berkutat di JavaScript, boleh juga tunjuk tangan.
Lihat transkrip lengkap
2:01Atau tulis ya, saya JavaScript.
2:04Yang apa, yang sudah tertarik ke TypeScript berapa orang?
2:08Iya, yang pengen coba.
2:10Saya baru pakai TypeScript itu untuk project yang lucu-lucuan aja.
2:22Yang baru nyoba-nyoba, belum pernah pakai di production.
2:25Jadi bener-bener curious nih.
2:28Itu pada mau pakai TypeScript, kenapa, kalau saya mau meyakinkan kolek saya, meyakinkan product owner, atau meyakinkan teman-teman yang lain.
2:40Atau meracuni teman-teman, kenapa harus pakai TypeScript?
2:42Pengen dengar nih dari teman-teman nih, gimana nih, apa sih TypeScript?
2:46Apa hebatnya gitu ya?
2:48Iya.
2:49Halnya 2-3 tahun terakhir ini naik dan nggak turun-turun gitu kayak trending terus gitu TypeScript.
3:01Jadi pengen tahu apa sih TypeScript gitu.
3:03Mungkin ada juga yang aneksi TypeScript, begitu teranjur pakai TypeScript,
3:10abis itu kalau misalnya nggak pakai TypeScript, jadi sakau, mungkin ada yang kayak gitu.
3:15Ada yang sakau ya, ada yang sakau.
3:18Ada yang sakau atau ada yang stres gara-gara naiknya susah.
3:23Seperti Harum, Harum Mawar.
3:26Kayak nama tersangka ya, sebut saja Mawar.
3:30Belia bukan namanya sebenarnya.
3:32Karena jaman kalau jaman saya gitu, saya sebelum pakai TypeScript, itu jaman Probe Types.
3:42Oh, Probe Types.
3:44Oh, Flow.
3:48Riat yang dulu juga.
3:50Probe Types.
3:52Dan saya tuh awalnya malah setelah nggak bikin Probe Types.
3:58Akhirnya Probe Typesnya bikin variablenya, terus bikin objek aja.
4:03Semuanya objek, objek kosong.
4:08Kalau nggak array, string, kalau yang obvious bisa layan number, string.
4:14Terus kemudian bolehan array of string, array of number.
4:20Terakhir kalau dia sudah objek dan harus di-struct lagi, semua harus di-definisikan,
4:27malas akhirnya bikin objek.
4:29Berdosa.
4:32Sebenarnya nggak begitu kan.
4:35Iya, iya, iya.
4:37Ada yang masih di GS, pengen belajar tapi belum sempat.
4:40Ada juga tadi kan kalau si Mawar ini kan dia sepertinya itu ya, terkendala ya.
4:47Terkendala karena mungkin belajarnya masih sedikit, jadi terkendala dengan nyari type-nya.
4:53Terus error, ketemu error, terus bingung gimana solvingnya.
4:56Kalau Damar, kebalikan.
4:58Ternyata dia pakai sekali, terus ketagihan.
5:01Nggak pernah di GS lagi.
5:03Pasti ada itu.
5:04Iya, ada pasti.
5:05Jadi ada plus-minusnya ya.
5:07Memang learning curve-nya agak-agak tinggi kali ya kalau untuk type ini ya.
5:10Apalagi yang berangkat dari bahasa dinamis kan, dari JavaScript, ketemu JavaScript, bingung.
5:17Ya, atau dari Python, dari Ruby, dari PHP.
5:20Ya, tapi kalau misalkan yang dari Java gitu kan, dari plus-plus kayaknya lebih landai ya, learning curve-nya.
5:31Golang?
5:32Golang juga.
5:33Type-free kan?
5:34Ada, ada type-nya.
5:35Strong-strong type.
5:37Strong-strong type ya.
5:38Iya, sama type-type, TypeScript juga.
5:40Jadi, ya plus-minus ya, plus-minus.
5:44Nah, malam hari ini kita akan diskusi kira-kira, mungkin lebih ke bukan hanya TypeScript ya.
5:52Karena type system secara umum mungkin ya.
5:55Kenapa itu butuh, keperluannya dimana, apakah itu bisa menambah produktivitas ya.
6:02Kalau dari Mawar tadi, malah menurunkan produktivitas ya.
6:07Bisa menambah, bisa menurunkan.
6:09Bisa menambah, bisa menurunkan, betul.
6:11Teruskan gini nih, biasanya kalau di sosmed kan, sosmed atau Reddit atau apa lah, Hacker News,
6:17orang itu kan biasanya opinionated banget yang kayak, "Wah, kalau mau jadi developer, harus belajar TypeScript."
6:25Atau sebaliknya ada yang bilang, "Ah, sebetulnya nggak perlu, TypeScript itu umum kosong lah, nggak usah, nggak perlu."
6:33Umum kosong.
6:35Jadi, mungkin buat nggak balance, ngimbangin apa ya, kayak influencer-influenceran gitu,
6:42ya kita nanti bisa lihat kali ya, kapan sih TypeScript itu worth it dan cukup penting.
6:48Kapan ya, bisa, mungkin bisa di-skip dulu atau di-tunda.
6:53Ya, dan ada ini nih, masternya TypeScript nih, ada di sini, jagoannya TypeScript nih.
7:01Sebuah TypeScript 3 kali muncul.
7:03Ayo kita undang aja, ayo gabung, ayo gabung, gabung, gabung.
7:07Langsung, nggak lah, nggak.
7:09Langsung.
7:11Oke.
7:12Kita bikin bagian dulu lah, bererti nih.
7:14Saya nggak bisa relate karena nggak pernah pakai TS dan JS.
7:18Wah, jadi pakainya apa?
7:20Oh, bukan anak front-end ya, bukan anak web ya?
7:22Wasm-wasm aja.
7:24Kayaknya pakai wasm.
7:26Oke.
7:28Oke, kita mulai dari ini dulu kali ya, definisi terus apa itu TypeScript, gitu ya.
7:36Saya punya materi, pernah saya bawa kan di salah satu workshop.
7:41Jadi, workshop ini cukup unik, kenapa?
7:43Karena saya diminta untuk mengajarin designer, bukan developer.
7:48Oh, nice.
7:50Minta designer, karena perusahaannya itu menggunakan TypeScript,
7:56jadi nggak belajar JavaScript, langsung belajar TypeScript.
8:00Awalnya agak skeptis, gitu kan.
8:02Desainer, tapi itu langsung kasih TypeScript.
8:04Tapi kan malah nggak apa-apa ya, kan sama-sama belajar baru.
8:07Betul, jadi belajarnya langsung statik, nggak belajar yang dinamis dulu kan,
8:11jadi tidak terkontaminasi, gitu kan.
8:14Saya agak skeptis awalnya, ini bisa nggak sih langsung ngajarin TypeScript?
8:18Apakah belajarannya tinggi, gitu kan.
8:21Atau jalan-jalan harus belajar TypeScript, eh, JavaScript dulu kayak naik tangga dulu,
8:27kan ada perantarannya kan, stepping stone-nya.
8:29Tapi ya udahlah, karena diminta begitu ya sekalian eksperimen, dan ternyata cukup berhasil.
8:34Jadi ini ada cuplikan materinya,
8:39jadi TypeScript itu adalah sebenarnya turunan ya, varian atau superset dari JavaScript.
8:45Jadi TypeScript itu ya sebetulnya JavaScript.
8:48Iya, JavaScript itu kan tipe bahasa pengelembangan dengan tipenya dinamis, kan.
8:53Dinamis artinya kita bisa mengubah-ubah variable,
8:57tipe data dari variable.
9:02Karena semua dianggap apa? Semua dianggap objek, ya.
9:07Semua diajak objek, di JavaScript semua adalah objek.
9:10Nah, jadi kalau lihat gambarnya seperti ini ya, JavaScript itu yang ini,
9:17terus kalau ES6 atau ES yang lain gitu, biasanya ada di atasnya yang eksperimental,
9:22atau yang belum di-approved ya, itu sudah, apa, itu istilahnya butuh transpiler, kan,
9:30ditranslasi ke JavaScript.
9:34Nah, TypeScript itu ada di atasnya lagi, dia menambahkan beberapa fitur seperti type,
9:38annotation, ada interface, ada generics, ada enums, dan ada banyak yang lainnya.
9:43Nah, kenapa TypeScript harus dikompilasi ke JavaScript?
9:48Karena JavaScript adalah satu-satunya bahasa yang dimengerti oleh browser sampai saat ini.
9:52Dulu sempat ada itu. - Jadi sebenarnya kalau kita buka console log,
9:55terus kita ngetik TypeScript, pasti error, dijamin error.
9:58Karena emang browser itu nggak bisa parsing, nggak bisa mengenali browser engine,
10:04nggak bisa mengenalin TS sama sekali. Belum ya? - Belum, belum.
10:08Satu saat tiba-tiba ada speknya di UAT. - Proposal virus ya.
10:15Dulu sempat ada wacana. Kalau teman-teman ikutin dulu, Chrome ya, bukan web secara umum ya,
10:23tapi Chrome, apa Google Chrome, berencana untuk memasukkan Flutter, eh Flutter,
10:29Dart ke sebagai pengganti JavaScript. - Oh, iya, iya, iya.
10:33- Tapi kurang berhasil. Akhirnya Dart tindah bikin Flutter gitu.
10:38Awalnya dari situ sebenarnya bahasa pemograman Dart itu. Yang adalah juga strongly typed,
10:44hampir sama seperti TypeScript. Nah, TS ini harus dikompilasi ke JavaScript gitu ya.
10:51Begitu juga Dart juga bisa dikompilasi ke JavaScript. Begitu juga Rayscript, ada lagi apa?
10:56ClosureScript, dan script-script yang lainnya. Itu harus dikompilasi.
11:00- PHP bisa dikompilasi ke JavaScript. - Oh iya, ada beberapa bahasa pemograman
11:04yang juga bisa dikompilasi ke JavaScript. Nah, sebenarnya TypeScript ini bukan hanya
11:10bahasa pemograman, tapi ada 3 komponen. Yang pertama bahasanya sendiri,
11:14yaitu yang fitur-fitur tambahannya, kemudian ada... - Terus ada tools-nya ya?
11:19- Iya, lendut server yang jalan secara otomatis di Visual Studio Code.
11:25Jadi kalau temen-temen... - Itu ada komen lainnya juga ya, berarti? TSC itu kan?
11:30- TSC. Enggak, satu lagi. Itu ada satu lagi namanya compiler. TSC itu adalah compiler.
11:35Jadi ada 3 komponen. Iya, kalau lendut server itu biasanya tools untuk
11:39kasih kayak pop-up gitu, ada keterangan. Biasanya kalau misalkan kita pakai VS Code,
11:45walaupun kode kita JavaScript, itu biasanya ada helper-nya kan.
11:49Kalau kita hover ke satu variable atau ke satu parameter, dia ada kasih tahu gitu kan.
11:55Walaupun kita nggak pakai... - Kita lisensi.
11:57- Iya. Itu lendut server. Dan sekarang lendut server dipakai di hampir semua bahasa...
12:03editor kan? - IDE.
12:05- Iya, IDE. Ada Vim juga bisa pakai lendut server juga.
12:09Nah, analoginya adalah, si TypeScript ini adalah pada saat kita nulis dokumen,
12:15misalkan Word atau Google Docs gitu, kan kita tulis ada komentarnya, ada...
12:21ada anotasinya lah. Anotasi itu ada kayak highlight dan lain-lain. Ini perlu,
12:26ini nggak perlu. Spellcheck dan lain-lain. Tapi ketika sudah di-print dalam bentuk buku
12:31atau dalam bentuk misalkan PDF dan lain-lain, dia nggak ada komentarnya, udah hilang.
12:36Jadi JavaScript-nya ya itu. Jadi akhirnya jadi akan ada compile time dan run time.
12:43Compile time ini kalau di TypeScript itu ya pada saat kita jalankan TSC,
12:47itu adalah compile time. Ketika dia sudah di JavaScript, dia hanya akan berjalan
12:51di saat run time. Seperti itu. - Nah, cuma hal yang penting perlu diingat nih,
12:56beda sama mungkin bahasa pengprograman lain kali ya. Kalau TypeScript itu kan dia
13:01menganalisanya, type checking-nya itu jalannya di static, ya kan?
13:06- Static, iya. - Static type checking.
13:08Jadi dia bisa mendeteksi pas kita lagi ngetik, kita misalnya ngesan variable yang nggak sesuai.
13:17Nah, itu dia bisa ngecek. Tapi begitu udah di compile, begitu udah jalan di run time,
13:22ya udah sih TypeScript-nya itu nggak bisa melakukan type checking lagi, udah lewat.
13:26Jadi mungkin agak beda sama yang bahasa pengprograman apa ya yang emang built-in type checking?
13:32- Ya C++, Java. - Jadi agak beda sebetulnya.
13:38Jadi pakai TypeScript itu bukan jaminan pasti 100% aman. Di run time tetap bisa error
13:45kalau ada yang definisinya nggak sesuai atau apalah, mungkin data eksternal yang...
13:52- Nggak strict. - Nggak strict.
13:54- Nggak, kalau pun kita codingannya strict, kalau ada data eksternal yang nggak sesuai,
13:59terus kita type casting-nya sembarangan ya, pokoknya tetap bisa jadi error.
14:03Karena begitu run time, TypeScript-nya udah nggak bisa ngecek apa-apa lagi.
14:07- Nah, sekarang pertanyaannya kenapa kita butuh type system untuk front-end khususnya gitu?
14:14Apa kepentingannya, apa keperluannya? Yang pasti pertama, apapun yang dikirimkan HTML
14:24dalam untuk form itu adalah string. Jadi kalau misalkan 1 ditambah string 1,
14:31jadinya 11 bukan dua, gitu kan. Dan itu sangat berbahaya.
14:37Kalau dulu error itu akan dihadapi oleh user langsung.
14:42Nah, dengan adanya TypeScript di tengah-tengah, itu bisa diinterap oleh TypeScript.
14:47Wah, ini tipe data-nya berbeda. Yang satu number, yang satu string, itu nggak bisa dijumlahkan.
14:54Jadi boleh di-convert dulu, atau emang itu kesalahan seperti itu.
15:00Beberapa yang saya dapatkan, kenapa kita butuh type system atau TypeScript,
15:08yang tadi yang barusan diomongin. Jadi kesalahan itu hanya terjadi pada saat develop.
15:14Kalau di production, hampir bisa dibilang, walaupun tadi kalau Eka bilang,
15:20tetap ada faktor, ada kemungkinan salah, tapi kecil lah, diperkecil.
15:26- Yang sudah diminimalkan. - Jauh mengurangi.
15:29Jauh mengurangi dan mengurangi kesalahan yang preventable. Maksudnya hal-hal yang,
15:33kita kan manusia ya, developer manusia, kalau harus ngerjain hal yang repetitif,
15:38ngecek semua bebas dari typo, terus kopasnya akurat, ya maksudnya kita bukan dibuat untuk itu,
15:44tapi mesin komputer itu kan emang dibuat untuk itu. Jadi kita mendelegasikan hal-hal yang redundant,
15:52yang melelakan makan waktu, tapi bisa diprediksi, kita delegasikan itu ke komputer, ke program dalam hal ini, ke TypeScript.
16:01Dengan demikian user experience akan meningkat. Pengalaman pengguna adalah menggunakan produk kita.
16:09Kalau produk kita errornya sedikit, ya tentunya dia akan lebih menyenangkan, dari UX juga lebih bagus.
16:15Kemudian dari sisi DX, nah DX ini lumayan sering terdengar juga ya, developer experience.
16:22Lebih baik kalau menggunakan type system, karena yang pertama ada bantuan autocomplete,
16:29dia lebih pintar, dia bisa tahu konteksnya, gitu kan. Terus juga, kok nggak ada, ini dia contohnya.
16:35Ini adalah contohnya kita bisa tahu, ini fungsi parameter pertama itu apa, parameter kedua itu apa,
16:43ketiga dan seterusnya, beserta dengan tipe datanya, gitu.
16:47- Dan ini secara nggak langsung kayak memaksa kita buat mendokumentasikan ya?
16:53- Iya, walaupun bukan dokumentasi komplit, tapi minimal kan kita harus agak niat sedikit,
17:02nah terus teman kita, teman kerja kita bisa lihat minimal bisa tahu itu apa dan hasilnya, expected-nya apa.
17:09- Iya, betul. Jadi bagian dari dokumentasi juga, TypeScript ini ya.
17:14Terus tadi juga kita udah bahas tentang typo, kesalahan-kesalahan konyol gitu ya,
17:19salah koma jadi titik lah, atau titik koma malah titik dua, gitu kan, sering salah kayak gitu kan.
17:27Terus typo, variable yang belum didefinisikan dan lain-lain itu bisa tertangkap semua.
17:33Kemudian kodanya juga lebih bisa dikelola, tadi ada hubungannya sama dokumentasi gitu ya.
17:40Dengan adanya, dengan memaksa kita untuk menulis type di variable atau di parameter,
17:47itu secara tidak langsung kita sudah mendokumentasikan, mendokumentasikan apa yang mau kita buat.
17:53Lebih jelas gitu, lebih jelas. Ini tujuannya apa? Ini juga sama tadi dan TypeScript ini dikembangkan oleh Microsoft
18:02dan digunakan untuk membuat VSCode. VSCode dibuat dengan TypeScript.
18:07Dan, ya kan ketawan kan company-nya? - Nggak apa-apa.
18:13- Nggak apa-apa ya. Oke. Dan si pembuatnya ini adalah orang yang sama yang membuat bahasa pemogaman C#.
18:24Tadi kita nggak nyemput ya C#, ternyata type strongly type ya. Jadi pembuatnya itu sama.
18:31- Berarti kayaknya semua yang low-level language itu strongly type ya. Karena emang, emang penting.
18:37- Iya. Jaman itu kan yang bercabang itu kalau di produk yang Microsoft yang bercabang itu C# dan VB.
18:45VB itu non-strip. - Iya, VB itu dynamic.
18:54Visual Basic itu dynamic. Nah, ini tadi sudah kita jawab bahwa berarti kita nggak bisa pakai TypeScript di HTML.
19:02Belum, belum bisa sampai saat ini. - Jaman dulu ES6 nggak bisa dipakai langsung di browser.
19:10Sekarang sudah bisa sebagian. - Ya, TypeScript juga sekarang harus di-transpile dulu ke ES6 atau bawahnya.
19:22- Iya. Ada wacana juga si JavaScript ini katanya ya. Nggak tahu ini bakal terwujud atau nggak.
19:33Katanya bakal mau introduksi type system juga kan. Tapi nggak tahu kapan gitu.
19:39Ada wacana kesana. - Dan itu pasti adoptinya ribet pasti.
19:42Cukup panjang. Terus, apa lagi nih? Ini biasanya. Kalau baru mulai, biasanya ini, ini, ini.
19:56- Bajar. Jadi ini, ini itu apa namanya? Ex implicit. Apa sih namanya itu?
20:02Ya, pokoknya kan ada jenis-jenis type, kalau misalnya kita nggak tahu apa, itu kita pakainya ini.
20:07Cuma ini nih bahaya nih. Emang semua bisa dikaliin. - Bisa.
20:14- Yang bisa dikaliin. - Atau bahaya ya.
20:16- Kalau Anya full, Bnya bare, full kali bare, jadinya apa coba?
20:22- Iya. Ini parameternya dikasih tipenya ini, parameter kedua dikasih tipenya ini.
20:28Terus fungsi yang diharapkan untuk return juga returnnya ini.
20:34Ini sebenarnya contoh yang, bukan contoh yang, contoh hello world lah ya, contoh hello world.
20:40Jadi TypeScript itu butuh setiap parameter diberikan tipenya, juga fungsi biasanya diberikan tipenya.
20:48Kalau fungsi yang tidak return apapun, ada nggak sih di TypeScript?
20:53- Void. - Void ya, void.
20:55Sebenarnya TypeScript itu kan punya kemampuan buat invert. Kayak misalnya kalau di contoh ini nih, misalnya Anya tuh number.
21:04Karena kan mau dikaliin kan A number, B number, kita nggak harus beneran nge-definisiin return type-nya yang di tengah tuh ini.
21:13Jadi A number, B number, kita ngereturn A kali B. Itu tuh bakal, dia cukup pintar buat tahu bahwa hasilnya pasti number.
21:22- Betul. Juga type annotation ini sebenarnya tidak selalu dibutuhkan.
21:29Kalau sudah obvious, misalkan seperti ini ya, A di kali B, kali itu memang udah dilast kan.
21:35- Tapi A-nya harus ada dibutuhkan. Misalnya A-nya kita set A sama dengan 1, B sama dengan 1.
21:42Nah 1 itu kan number ya, jadi itu juga implicit. TypeScript cukup pintar buat tahu itu number.
21:48- Kan masih bisa float atau double juga. - TypeScript cuma punya number.
21:54- Iya, kalau script baru ada float, ada integer. Dan operasi matematikanya juga berbeda.
22:04Kalau float dia plus titik, kali titik, bagi titik, dan lain-lain. Itu khusus untuk float.
22:09Jadi hanya bisa float di kali float. Float dibagi float. Kalau TypeScript mungkin masih bisa nyampor ya.
22:15- Baru belajar. Oke. - Nah, ini juga ada pertanyaan menarik nih.
22:20Berarti kalau TS ditranslate ke JS, apakah performa akan menurun? Karena kan perlu proses tambahan.
22:27Dan sudah dijawab oleh Damar. Gak berasa. Di production gak berasa. Berasanya adalah saat di compile.
22:36- Di compile. - Saat di download oleh user, itu udah dalam keadaan JS. Jadi emang user yang gak...
22:45- Ya, secara user experience tidak berasa. Cuman secara developer experience mungkin iya.
22:49Banyak yang mengeluhkan yang bilang TSC atau TypeScript compiler itu lambat. Karena ditulis dengan node JS.
22:56Makanya muncul beberapa alternatif seperti SOP. - Pake RAS.
23:00- Pake RAS. Dia dikompilasi dengan RAS. Jadi lebih cepat. Itu juga salah satu yang menyebabkan...
23:06- IS build juga bisa. - IS build juga udah bisa sekarang. Betul.
23:10- Itu jauh lebih cepat. - Betul.
23:12Ada beberapa yang merasa jengah dengan lambatnya compiler TypeScript.
23:24Makanya ada muncul saran dari beberapa orang yang menyarankan lebih baik menggunakan JS.doc.
23:32JavaScript plus JS.doc. Itu apakah sama? Dibilang sama, enggak juga ya. Serupa tapi tak sama ya.
23:39JS.doc ini kan dokumentasi. - Betul. Ada link-nya. Buka link-nya aja. JS.doc.app.
23:43- Oke. Baiklah. JS.doc.app.
23:48Jadi TypeScript itu sebenarnya fitur yang dia, maksudnya yang utamanya itu kalau saya tangkap itu adalah
23:57ada static analysis-nya yang bisa menangkap strict type ini saat implementasi dalam saat development
24:05untuk bisa mencegah... apa namanya? - Preventable error.
24:11- Oke. - Preventable issue.
24:13- Berarti lebih ke arah static analysis ya? - Iya.
24:16Cuma kan tadi ada tool-link-nya juga, ada compiler-nya juga. Sementara kalau JS.doc itu jauh lebih simple
24:23ya cuma buat mendokumentasikan sesuai namanya. Jadi apa? Sintasi itu kayak comment. Nah, kayak gitu tuh.
24:33- Kalau teman-teman ngoding Java atau VB zaman dulu kayak gini nih. Semuanya di sini ya parameter-parameternya.
24:42- Name, string. - Nah, ini cuma bekerja buat intelligence saja autocomplete.
24:48- Untuk sekarang masih pakai JS.doc. - Nah, kayak gini ya. Nah, ini jadi sebenarnya dibilang sama enggak ya.
24:56Kalau menjawab pertanyaan tadi dibilang dari siapa tadi namanya? Nyan.js.
25:00Kalau ditanya sama enggak. Tentu saja tidak. Kenapa? Karena yang satu adalah komentar atau dokumentasi.
25:06Yang satu adalah bahasa. Dia lebih lengkap.
25:09TypeScript juga menambahkan beberapa fitur dalam bentuk bahasa, seperti contohnya interface,
25:16kemudian ada generics, dan ada kita juga bisa validasi tipe data dari JSON.
25:29Nah, kalau JS.doc kan rasanya nggak bisa ya. Nggak sejauh itu. Belum sampai sejauh itu.
25:34- JS.doc hanya untuk mendokumentasikan apa sih? Variable. - Variable, fungsi, dan lain-lainnya.
25:43- Parameter. Genis parameter. - Iya, parameter.
25:46- Dan kebetulan aku punya pengalaman pribadi ini pakai JS.doc karena nge-inherit di tempat kerja.
25:53Dapat codebase yang ditulis oleh pihak eksternal, pihak luar, dan kita nggak punya kontak sama sekali.
26:02- Ya, udah. Nah, JavaScript semua, udah nggak tahu lah, udah nggak ada...
26:08Pokoknya nggak jelas lah API-nya kayak apa, ini function buat apa, dan hasilnya apa.
26:13Itu kayak harus di-console semua manual, tapi karena kejar tayang, buru-buru, harus segera di...
26:20Ada beberapa hal, jadi ada beberapa logic yang perlu dicek dan perlu di-edit, di-refactor.
26:27Nah, solusi cepet tanpa harus apa. Terus dari segi deploy-nya juga belum di-setup CICD, harus manual.
26:35Aku yang loading minta ketemuan buat deploy-in karena ini derutat ya, one-off.
26:42Ya udah, kalau buat. Nah, ada beberapa tiket untuk ngecek dan merefactor beberapa logic-nya
26:49biar bisa didokumentasiin. Kebetulan ada beberapa lumayan dominan dikalkulasi.
26:54Jadi input-nya lumayan kompleks, maksudnya input-nya ada beberapa skenario A, B, C, dan output-nya juga
27:01ada beberapa logic yang perlu dipastiin. Nah, itu solusinya JSDoc sih, yang saat itu juga beneran
27:08udah tinggal ngetik kayak gitu doang. Cuma kelemahannya nih, nested object, kalau object-nya udah rumit,
27:15itu susahnya minta ampun. Itu kalau tadi kan kalau misalnya primitif yang kayak simple, yang kayak string,
27:25number, itu masih oke. Tapi kalau udah array dengan nested object itu bikin bisa ada referensi gitu,
27:34semacam bisa kita mendefinisikan objek-objek yang ada, terus bisa dipakai lagi untuk fungsin lainnya,
27:42misalnya array yang berisi objek A atau B atau C jenisnya, tapi itu ribet asli syntax-nya.
27:50- Tapi bisa digabung loh antara JSDoc dengan data definition TypeScript itu bisa. - Oh, nice.
28:03- Jadi pakai interface. - Iya, interface. - Jadi export interface, terus JSDoc-nya tinggal diimport.
28:14- Cuma itu harus masukin TypeScript dulu kan. Kalau ini kasusnya yang beneran buru-buru banget,
28:21adanya cuma JS, JSDoc itu bisa jadi solusi. Cuma selanjutnya kalau mau refaktor pelan-pelan,
28:27pelan-pelan ya, nambahin Convert ke TypeScript, itu bagus, itu berarti bisa secara bertahap di Convert
28:37sampai jadi TypeScript semua. - Betul. Jadi kalau memang TypeScript hanya digunakan,
28:43hanya digunakan untuk mendefinisikan fungsi, variable, parameter, return function-nya, mendefinisikan type-nya,
28:54itu mungkin JSDoc udah lebih dari cukup. Tapi kalau misalkan udah pakai interface, harus validasi si JSON-nya,
29:03objek di dalam objek, nested object, array dan lain-lain, itu kayaknya TypeScript udah bisa jadi pilihan.
29:12Apalagi beberapa struktur data ditambahkan di TypeScript misalkan tuple. Ada yang saya tahu yang berbeda hanya tuple,
29:22yang lainnya kayak Genrex dan lain-lain. - Terus logic, TypeScript itu bisa simple logic kayak misalnya
29:28capitalize, misalnya apa ya? - Union type, union type itu juga penting banget.
29:33Terus string manipulation juga bisa kayak kita punya beberapa value, terus dari situ kita kayak extrapolate,
29:42jadi value-nya harus capitalize atau workase atau mengkombinasikan string.
29:48Ya pokoknya TypeScript itu bisa menghendal, walaupun itu logic statik ya, cuman itu bisa cukup pinter buat hal-hal kayak gitu.
29:57- Ya, misalkan to lowercase gitu kan, something dot to lowercase, tiba-tiba yang dikirim angka error kan,
30:05TypeScript bisa mendeteksi itu supaya memastikan bahwa dot to lowercase itu harus string, itu juga termasuk.
30:13Terus tadi yang saya sebutkan union type itu juga cukup killer feature-nya, salah satu killer feature-nya
30:32konstanta ya? - TypeScript union, TypeScript itu masanya cuman suka lupa deh, ngerti bentuknya itu namanya apa?
30:44- Union itu yang biasanya huru besar semua, nah kalau misalkan pakai Redux nih, bikin action ininya,
30:53bukan pakai string terus huru besar semua tuh, itu bisa dijadikan union kan. Union misalkan car,
30:58car tipe-nya ada sedan, pick-up, - Oh, apa, depi sine pipe ya?
31:05- Ya, pipe, itu union kan, kita bisa bikin tipe atau struktur data kita sendiri, gitu.
31:13- Union type, ntar gua ambilin. - Ya, sambil kita coba-cobain ya.
31:19Berarti apakah nggak bisa juga dipakai di web komponen? Kalau di web komponen yang vanilla nggak bisa,
31:23tapi kalau misalkan pakai lib lemen, pakai yang lain, itu dia dikompilasi dulu jadi JavaScript juga ujung-ujungnya.
31:33Cuman kalau langsung web komponen yang vanilla itu masih harus pakai JavaScript.
31:39Yang paling sering saya terkena isu soal people data itu, tiba-tiba hasilnya yang saya ambil itu undefined atau null.
31:53Sedangkan yang saya butuhkan itu string atau objek, tetapi yang saya dapat undefined, akhirnya di runtime error.
32:01Nah, kalau pakai TypeScript itu bisa dicegah, karena dia sudah, saya tahu itu, written-nya dari function mana,
32:11atau dari hasil apa, dari objek mana, itu kan sudah punya type-nya.
32:18Jadi tiba-tiba kita masukin ke, assign ke function tertentu yang membutuhkan tipe data, ternyata yang kita assign itu undefined.
32:27Bisa, maksudnya ada probabilitas itu bisa menjadi undefined, maka TypeScript itu bisa capture.
32:35Nah, itu contohnya ada, itu istilahnya type predicate ternyata, itu di private chat ada link-nya.
32:42Bisa dibuka buat lihat contohnya, bagus itu contohnya.
32:45- Boleh, boleh. - Oke.
32:48- Is, jadi intinya itu pakai keyword is di TypeScript. - Mana contohnya?
32:54Scrolling ke contohnya na, function isString.
32:58IsString itu kan kita dapat data, data si X itu parameter kan, yang kayak dibilang Ivan tadi, X-nya ya nggak tahu itu apa.
33:06Coba, return-nya X is string.
33:10Kalau value-nya, kalau return-nya true, berarti dia memang string.
33:16Apapun, kalau selain, ya di contoh ini, kalau apapun yang selain string, ya return-nya false.
33:22Jadi kita tinggal apa, data yang mau kita cek, ya tinggal dimasukin ke function isString ini.
33:30Habis itu, setelah lolos, TypeScript langsung otomatis tahu bahwa itu adalah string.
33:36Berarti isString itu berarti isObject, isNumber, is...
33:41- Terserah kita namain apa, Mak? Terserah itu contoh doang. - Bebas, bebas.
33:47Iya. Tadi kita lanjut union nih, ada yang contoh ini, dog, cat, sheep.
33:53Ini dia. Jadi mungkin kan kita membuat tipe data sendiri atau stoker data sendiri.
33:59Dan itu string gitu ya, artinya contohnya kayak gini, misalkan saya punya 2 string.
34:04Kemungkinan cuma 2 kan, success atau error.
34:07Kalau kita bikin flipcoin berarti hasil akhir dari function-nya itu harus menghasilkan salah satu dari 2 ini.
34:14- Kalau dulu pasti bisa ketutup. - Oh iya, maaf.
34:19Nah, jadi kalau kita bikin function flipcoin, ya kan?
34:25Flipcoin itu kemungkinan cuma ada 2 kan, head or tails kan.
34:29- Jadi kita bisa langsung... - Detekannya langsung string-nya, bukan tipe data-nya ya.
34:33Iya, ini udah menjadi tipe data sendiri, isinya seperti ini, kayak konstantan.
34:38Gak bisa ya, coin-nya, dalenya, gambarnya garuda pancasila gitu, ternyata coin-nya.
34:42Nah, kalau misalkan di sini tiba-tiba kita typo, kita kurang S atau Inya kita lupa tulis atau itu,
34:51dia akan langsung error kasih warning bahwa ini nggak ada tipe data-nya, dia hanya menerima heads or tails.
34:56Jadi lebih strict gitu ya. Itu salah satu fitur kunci juga kalau menurut saya.
35:01Counter undefined.
35:06Oke, lanjut lagi, apa lagi yang mau kita bahas, Pak?
35:13Biasanya yang sering ketemu fitur-fitur TypeScript yang paling berguna, paling bermanfaat, ada lagi nggak sih?
35:20- Kita masuk kayak kasus kecil aja gimana? - Boleh, boleh.
35:28Strict mode. Buka link yang dari saya aja yang di itu. Kita go through sama-sama.
35:37- Apa itu? - Ini ya, maksudnya.
35:42Jadi strict mode. Jadi kenapa kita, bagi saya, saya masih baru belajar TypeScript.
35:51Belum pernah pakai di production terus terang aja, jadi hanya baru main-main aja.
35:56Dan kenapa saya mulai tertarik dan ingin belajar menggali karena strict mode-nya ini.
36:02Karena paling sering saya terkena masalah adalah kalau, ya itu tadi,
36:08saya harap bukan fungsinya saya menerima cuma array, tetapi ternyata return data saya dari tempat yang lain dapatnya undefined.
36:17Itu kenanya di runtime kalau di ES6 biasa, ya kan? Kalau pakai TypeScript bisa dapat nih.
36:26Jadi contohnya kita langsung ke contoh ke bawah, ini kan teman-teman bisa baca.
36:31Kita langsung ke contoh kasus, dia ada di bawah sedikit. Terus, terus, terus, terus.
36:36Oke, di main function, oke. Lagi ke bawah, oke, stop. Jadi di main function, kebanyakan, kebanyakan.
36:47Jadi di main function, dia sebenarnya kan ambil data dari DB, username, intinya usernya found.
36:55Terus kita kemudian greeting found user.username. Itu contohnya, contoh kasusnya.
37:03Terus kita lihat di apa namanya, di greeting itu apa sih? Greeting. Kita turun sedikit.
37:10Greeting itu ternyata menerima input argumennya names. Langsung kita anggapannya names itu langsung array.
37:19Jadi langsung kita console log, names.map, name to lowercase, blablabla.
37:24Itu harapannya adalah si inputnya adalah array. Terus kita turun. Kita turun lagi.
37:34Nah, kalau kita jalanin ini blablabla, kita compile, terus nggak ada terjadi masalah kan. Terus kita turun.
37:42Nah, ternyata kalau misalnya apa namanya, kalau kita enable strict mode, berarti dari yang names yang tadi itu kita kan nggak define.
37:54Jadi dia nggak punya apa, dia implicitnya any type. Sedangkan kita jalankan, kita anggap dia sebagai array.
38:04Maka si TS itu langsung bisa return error saat compile. Dia ngasih tau names yang tadi ini adalah tipe datanya any.
38:15Tetapi kita perlakukan dia sebagai array. Maka kita harus define dia sebagai array.
38:20Kita turun sedikit. Terus, terus, terus, terus. Ya, solusinya kan yang kita buat itu jadi array.
38:29Array yang ada type-nya. Jadi di TypeScript juga array itu harus sama semua type-nya.
38:37Kalau di TypeScript kan bisa ya. Array 1, 2, string gitu kan. Array 1, 2, tree gitu.
38:44Jadi ini array of string gitu ya. Kita define array of string.
38:52Beres kan. Ternyata, nggak segit si type itu bisa lebih jauh lagi. Waktu kita panggil greeting font user.username tadi,
39:01dia bilang, "Ini font user.username itu bukan array of string." Maka itu salah, dia bilang.
39:08Jadi kita harus masukin dia ke dalam string. Kita turun lagi ke hasil akhirnya.
39:14Nah, berarti kita kan harus cek dulu si user itu ketemu nggak. Iya kan? Kalau nggak ketemu apa?
39:22Kalau ketemu, baru kita assign dia harus dalam array. Jadi greeting array font user.username.
39:32Font user.username. Jadi si function greeting-nya kita itu sudah pasti, pasti, pasti, pasti.
39:40Sudah pasti ada dan betul.
39:42Ya, sudah pasti ada dan betul array. Maka dia menjalankan tugasnya dengan pasti.
39:52Nah, disinilah kenapa saya tertarik mau implementasi di project saya yang selanjutnya pakai TypeScript.
40:01Mantap.
40:08Terus ini ya, tapi yang tadi kan kita sudah sempat ngomong ya, build-nya lama abis itu tinggal main.
40:20Ada tuh memes-nya. Lagi ditanya, "Kenapa kalian nggak kerja?" Lagi compile.
40:28Kenapa nggak ada yang sampai selama itu? Pengalaman pribadi sih walaupun kodenya cukup banyak, nggak pernah sampai lama banget.
40:40Selama ini build lama itu kayaknya biang karaknya cuma satu deh, sharp image processing.
40:48Itu kalau misalnya kita pakai yang image library yang sharp atau semacamnya, yang kalau dulu paling sering mati Gatsby,
40:58tapi bisa, mungkin di framework lain juga banyak. Itu tuh kalau compile pasti lama.
41:04Karena dia kan memproses image-nya satu persatu, dia ngeresize dan mungkin bikin beberapa format, jadi lama intinya.
41:11Maksudnya kalau TypeScript sih nggak tahu belum pernah nge-handle codebase yang sebesar itu sampai terasa lama.
41:20Microfront-nya.
41:22Ya, mungkin. Tapi kan kalau microfront-nya apa harus di compile semua sekaligus, inti orang bikin microfront-nya kan biar bisa kepisah package-nya.
41:33Nah, itu nggak tahu.
41:35Monorepo.
41:40Di dalam kasus apa atau codebase sebesar apa yang sampai lama banget, sampai signifikan.
41:46Maksudnya bedanya, kalau cuma beda 1-2 detik kan nggak kerasa ya.
41:50Tapi maksudnya sampai beda 5 menit lebih begitu namakan TypeScript. Aku pribadi sih belum pernah ngalamin.
41:57Cuma mungkin teman-teman ada yang pernah.
42:00Ini juga menarik nih. TypeScript udah wajib banget buat job market ya. Pusing.
42:08Udah wajib banget ya.
42:10Saya juga insight menarik nih. Karena baru tahu juga ternyata TypeScript udah wajib ya.
42:17Bukan jadi nilai tambah lagi sekarang ya. Udah wajib tahu TypeScript ya.
42:22Mungkin sekarang makin lama, makin apa sih kayak di state of the web, di survei-survei gitu.
42:29Emang TypeScript kan konsisten naik terus. Bahkan per, nggak tahu ya, per sekitar 4 tahun lalu gitu kayaknya mungkin belum se hype itu TypeScript
42:41buat entry level, kalau dari pengalaman aku lagi-lagi 4-5 tahun yang lalu.
42:46Cuma mungkin makin sekarang ya makin jadi.
42:51Menjawab pertanyaan Eka yang tadi, seberapa besar proyeknya sehingga TypeScriptnya lama.
42:57Ada beberapa proyek besar yang akhirnya dari JavaScript ke TypeScript abis itu balik lagi ke JavaScript.
43:04- Balik lagi. Svelte ya kayaknya? - Svelte.
43:06Svelte nggak sih? Gara-gara rich values-nya nggak malus. Udah lah, JSdoc aja.
43:11Iya, dia balik JSdoc.
43:14Tapi kelihatannya itu bukan, maksudnya nggak sepenuhnya sunking lamanya nge-build deh.
43:19Cuma maksudnya kompleksitas antar modulnya.
43:22Maksudnya dengan codebase sebesar itu kelihatannya memastikan semua play nice dengan type definition-nya, interface-nya.
43:32Itu kan, ya maksudnya, existing legacy codebase itu emang kalau sebesar itu agak sulit.
43:38Cuma kelihatannya, maksudnya belum pernah lihat dari diskusinya di GitHub-nya.
43:44Itu nggak ada bukti bahwa itu karena build-nya kelamaan deh.
43:49Iya, bukan hanya karena itu. Mungkin karena yang tadi kebutuhannya hanya untuk memberi type variable seperti dokumentasi dalam tanggung tipe ya.
44:02Dia tidak menggunakan fitur-fitur TypeScript seperti interface-ka atau generic.
44:09Jadi buat pakai TypeScript, type dokumentasi, ya udah pakai yang lebih cocok gitu.
44:14Itu udah ada, udah ada dan udah jalan, udah ada musik, udah ada sistemnya.
44:19- Nah ini ada GDI juga nih. Halo. - Wey.
44:26- Kata siapa? - "Benefit TypeScript tidak menggunakan TypeScript."
44:30- Oh, maksudnya next-nya bisa kita undang. - Bisa, ini.
44:35- Makanya orang muncul di sini kita undang ya. - Ngobrolin cloud, ya ngobrolin cloud.
44:41- Ngobrolin web/xcloud. - Pusing di development-nya tapi di production safety.
44:51Nah ini, ini, ini. Benar nih, benar banget nih.
44:54Jadi kita lebih mengutamakan user experience dibandingkan developer experience gitu ya.
44:59- Tapi sebenarnya mungkin tingkat pusingnya juga apa? Ini grafik tingkat pusingnya di awal tuh begini.
45:06Cuma makin lama kan makin turun. Pas kita udah, kita udah ngerti dan menguasain,
45:11pusingnya pasti berkurang kok. Dan safety-nya tetap.
45:15- Halo, di PHP, ada juga nih, kita pakai, saya juga interrupt yang sama.
45:23Bukan, mirip-mirip dengan static analysis itu namanya PHP saya.
45:27Jadi PHP static analysis. Jadi sama, mirip tuh. Jadi misalnya function apa,
45:37written-nya harus apa, terus kemudian kalau saya pakai function itu di tempat lain,
45:41dan argumennya harus apa. Nanti dia bisa didetek oleh PHP stand ini secara,
45:49kalau kita gabungin sama IDE, kan bisa dirun saat save ya.
45:53Kalau kita save file-nya, dia akan jalani static analysis per file-nya.
45:57- Kayak ESLin gitu? - Iya, jadi dia bisa tahu tuh,
46:01dia bisa tahu kode mana yang akan menghasilkan error, kemungkinan error.
46:08Karena tipe data, return data, terus gitu. - Tipe data, typo.
46:14- Tapi itu bukan, itu library ya? Maksudnya kita install itu. Kayak ESLin ya?
46:23- Premium package. - Oh, yang pro, itu pro-nya.
46:29- Jadi PHP stand-nya juga, dia buat level strict, maksudnya level 0 sampai level 10.
46:36Jadi kita harus bikin juga tuh PHP doc-nya. Nanti dia harus, dia ngedetek PHP doc-nya juga.
46:43- Oke. - Jadi mengapa saya, karena kalau kode saya,
46:50saya udah mengarah mulai ke arah pakai PHP stand semua sebagai standar,
46:55makanya untuk JS-nya saya lagi milih TypeScript sebagai standar.
47:00- Oke, oke. Nah ini kita balik nanya-nanya nih, Mas Dhoni.
47:06Mas Dhoni kan lumayan ini ya, ini kan masih pakai JavaScript yang dinamis,
47:11kalau nggak salah, ClosureScript juga ngulik kan, pokoknya bahasa-bahasa yang dinamis.
47:17Kenapa lebih memilih bahasa dinamis dibandingkan bahasa statis? Boleh jawab ya. Ini juga...
47:22- Asyik ya kita ganti nanya-nanya. - Udah langsung ditodong, cocok tuh.
47:28Bahas edge. Pas nih. Udah ada. - Kita intersect the edge.
47:35- Iya, tuh. Kan banyak tuh kan, dan sudah running di edge juga kan.
47:41- Nah ini kita juga pernah bahas sekilas ya di episode entah apa. Oh JS Engine.
47:47- JS Engine, iya. Bun, Deno itu bisa langsung running TypeScript tanpa harus transpilasi dulu.
47:54Kalau Node masih belum. Node harus menggunakan TSC atau transpilasi yang lain.
47:59Jadi JavaScript baru bisa dijalankan. Kalau Deno... - Yang bikin sama.
48:07- Ya, yang bikin sama. Bun dan Deno, dua-duanya tanpa perlu transpilasi, dia langsung bisa running TypeScript.
48:16- Tapi, berarti dia... langsung transpilasi dia? - Iya, dia langsung di... - Dia install TypeScript-nya, built-in berarti ya.
48:29- Karena kan... - Berarti JIT, just in time, dia langsung...
48:35- Karena kan kalau engine-nya TypeScript itu kita tulis JavaScript kan valid kan, meskipun warning ya.
48:42Tapi tidak sebaliknya kan, gitu. Makanya si Bun sama si Deno itu engine-nya udah TypeScript.
48:50Jadi meskipun kita tulis JavaScript, dia tetap terima. - Ya dia bisa baca.
48:54- Kalau Node.js itu kan engine-nya JS, bukan TS. Makanya TS-nya harus transpilasi dulu, gitu.
49:02- Kalau yang kayak Edge Function yang sudah... maksudnya Cloud For Firewall yang sudah punya Edge Function
49:19bisa kita pakai Bun atau Deno, ada nggak sih? - Ada. Deno kan punya ini sendiri dia.
49:25- Deno Deploy namanya, kalau nggak salah. - Oke, itu Mas Donnie bilang, Dynamic Engine More Fun.
49:35- Iya sih. - More Function.
49:37- Tantangan ya? - Lebih lucu ya.
49:42- Karena kalau nggak ada bug, nggak ada tantangan kan. Kan kita bug-driven development.
49:50- Nah nggak, cuma nih, temen-temen gimana kalau pendapat tentang seberapa pentingnya
49:56nambahin TypeScript di project kita. Kalau aku pribadi sih, kalau pandanganku,
50:01kalau existing codebase apalagi udah established dan nggak ada TypeScript-nya, nggak usah dulu.
50:08In most cases, nggak perlu dulu karena ya itu kan kadang cuma kita aja sebagai developer
50:14pengen perfectionis semua jadiin TypeScript, padahal maksudnya kalau untuk production-nya
50:21kan resource-nya bisa dipakai buat ngerjain hal lain. Jadi kalau menurutku sih
50:26kalau udah established banget, existing codebase apalagi legacy, itu ya nggak perlu banget.
50:34Itu ya mungkin prioritas rendah lah. Itu masuknya mungkin QOL, quality of life improvement,
50:41nambahin TypeScript. Tapi kalau bikin project baru apalagi pakai stack yang cukup modern nih,
50:47misalnya kalau front-end ya segala macam meta framework atau framework sekarang misalnya
50:52mau kita pakai Next.js, Wellkit, Astro apapun itu, itu kan by default starternya hampir semua
50:58atau malah semua udah ada TypeScript-nya. Jadi why not. - Nah kan fit pun udah ada kan?
51:04- Gimana kalau menurut kamu, kalau menurut Eka gimana kalau misalnya meskipun dia sudah ada
51:11sudah established nih codenya tetapi kan kita tetap ada penambahan fitur baru.
51:17Kalau misalnya kita bikin packaging-packaging sendiri kayak package sendiri gitu.
51:21- Oh ya kalau package sendiri kan itu udah bisa. - Main codebase-nya kan banyak package itu modular tuh.
51:30Jadi package yang kita sendiri udah pakai TypeScript gitu. Bisa juga kan ya?
51:33- Ya bisa, bisa juga. Kalau emang ada resource-nya. Cuma ya mungkin itu, ya tergantung.
51:39Lagi-lagi tergantung timnya gimana terus kayak apa, dari segi project management ya ada
51:45resource-nya yang tersisa berapa. Mas sebenarnya TypeScript itu bagus, improvement,
51:50tapi nggak urgent banget harus sekarang banget ditambahin ke existing project lebih keitunya sih.
51:57Tapi kalau bisa ya lebih bagus. - Intinya nggak usah berantem gara-gara harus pakai TypeScript
52:02kalau nggak usah dipaksa-in. Apapun dipaksa-in itu kurang bagus.
52:07- Pertanyaan yang bagus dari Bumantara, kalau mau belajar TS apakah harus belajar JS dulu?
52:15- Tadi designer-nya nggak tuh, yang designer tadi nggak kan?
52:20- Tapi behavior-nya, sintaksinya kan sebetulnya JS juga itu.
52:27- Choose name sama dengan Eka, itu kan JS. - Mungkin sintaksinya nggak, tapi konsep-konsepnya
52:35seperti promise, callback, dll. itu kan JS semua. Ditambah lagi..
52:39- Semua cara ngedefinisi invariable, bikin book itu JavaScript semua. Jadi ya jelas-jelas.
52:45- Ditambah lagi kadang-kadang error-nya itu bukan error TypeScript, tapi error JavaScript
52:50apalagi di runtime kan, itu yang muncul kan error JavaScript. Kalau kita tidak mengerti JavaScript,
52:55bingung juga itu. Jadi mungkin fundamental JavaScript perlu sedikit,
53:00kemudian langsung masuk ke TS, nggak apa-apa. - Event loop, event loop.
53:05- Event loop, iya. Pokoknya konsep-konsep JavaScript itu harus dikuasai dulu.
53:09Ini ya, tadi kita bahas tentang developer experience. Kita harus mengorbankan developer experience
53:16susah-susah di kita. Yang penting user terbantu atau user experience-nya bagus.
53:23- User experience harus bagus. - Mau enaknya kita.
53:26- Tapi kalau ada experience yang bagus, ya why not? - Iya. Tapi kalau misalkan nggak ada pilihan nih,
53:31kita harus susah nih. Kita harus mengutamakan si user. - User dulu.
53:37- Percuma aplikasi kita keren banget, tapi user nggak ada yang pakai kan, percuma kan.
53:45Ini juga nih. Berakit-akit kehulu, berenang-renang kemudian ya.
53:53- Nah ini mau lulus apa? - Kalau udah, nggak,
54:01kalau udah lulus kompilasi TypeScript-nya udah aman.
54:04- Mau share pertama kali aku pakai TypeScript nih sebelumnya, sebelumnya udah belajar
54:09dikit, baca-baca kayak tutorial gratisan, baca e-book gratisan, cuma ya namanya baca kayak gitu,
54:15suka niat nggak niat kan, pas lagi pengen dibaca, abis itu lupa. Nah intinya cara paling,
54:21ya kalau menurut aku cara paling manjur buat belajar TypeScript adalah bikin proyek pakai TypeScript.
54:28Langsung bikin proyek aja. Walaupun ya pertama pasti, ya itu tadi sesuai komennya,
54:35beneran pusing dan capek, semua merah, asli merah semua. Terus kayak tadi kayak komen yang di awal tuh,
54:44"Eni, eni, eni, are you okay eni?" Kayak lagu. Nah cuma kan pas kita mouse over ke error-nya,
54:52itu kan ada kodenya, dan ada keterangannya, dari situ kita bisa lihat itu kodenya kenapa,
54:58dan kita bisa biasanya cek stack overflow ya. Ada keterangannya, ya kita baca aja
55:06conversasinya itu apa, cara betulinnya gimana, pas awalnya emang kopas-kopas aja,
55:10kadang malah nambah merahnya nambah banyak, kadang merahnya pindah. Nah untungnya seringnya
55:17akhirnya merahnya hilang. Dengan satu persatu mengilangin error-nya itu, kita lama-lama ngerti sih.
55:24Jadi itu kayaknya kalau misalnya kita cuma baca, kita dalam keadaan belum tahu time strip,
55:30terus kita cuma baca, itu nempelnya tuh agak sulit. Harus ngalamin error sendiri.
55:36Nah cuma, ya apa tetap kalau di production atau aplikasi yang penting atau berurusan sama orang lain ya,
55:43jangan pakai aplikasi yang personal project atau yang kecil-kecil aja dulu.
55:48Iya. Tadi ada pertanyaan yang bagus juga, nggak tahu ada yang ini, nah ini.
55:58-Banyak tuh bagus. -Banyak ya? Biasanya pakai time strip biar mengurangi
56:02menghapal property atau method yang dimiliki satu objek. Apalagi kalau data structure-nya udah nested.
56:07-Iya, salah satu contohnya juga. -Inter-desense ya, pakai inter-desense.
56:11Jadi kalau di compiler options kita bisa nentuin kan targetnya itu mau isnext,
56:18next itu kelihatannya yang tahun berjalan ya.
56:22-Ya, tahun berjalan. -Syntax dari ECMAScript specification
56:27di tahun ini, atau bisa juga dispesifikasiin is5, is6, dan seterusnya.
56:33Nah itu tuh kita dapet gratis type definitions untuk ECMAScript dan DOM Note API.
56:44Jadi event, misalnya mouse event ya, itu kan bawaan yang ada dari browser.
56:49Itu kita tinggal ketik aja misalnya terima parameter event, titik 2 mouse event.
56:56Itu ada muncul sendiri. Jadi event itu isinya apa, atau misalnya event itu kan bisa kita bikin listener.
57:08Apa aja yang bisa di listen, itu tuh ada di definisinya.
57:12Kalau project-project atau library-library X third party yang kita pakai,
57:17kalau dia menyediakan type definition-nya, kita juga bisa langsung pakai.
57:23-Langsung dapet tau. -Betul.
57:28Nah gimana kalau kita pakai library lama yang belum ada,
57:33nggak bawa type definition sendiri, kita bisa pakai definity type.
57:38Itu ada link-nya somewhere bentar.
57:41-Ini sudah disiapkan. -Asik.
57:45-Ini kan? -Definite type.
57:48-Ini apa nih? -Ini type definition yang unofficial.
57:54Jadi kalau misalnya kita pakai external package atau library yang belum ada type definition-nya,
58:00merah semua kan tau. Nah kita install, ininya type-nya.
58:05Oke. Ini semua library yang belum ada type-nya?
58:12-Kita install ini, terus dia langsung... -Iya, itu tergantung ada yang pull request atau nggak.
58:19Cuma kalau cukup terkenal sih, hampir pasti ada.
58:23-Hampir pasti ada ya. -JQuery ada nggak?
58:27JQuery udah bawa kali, kayaknya ada deh.
58:31-Kalau dari jQuery-nya udah bawa. -Ada jQuery-nya.
58:37S-Express? Ada nggak Express? Ada dong. American Express.
58:42-Gak ada. Express udah ada sendiri. -Ada kebawah, itu tuh.
58:46Bahkan saking banyaknya folder-nya. Delay zilot. Coba kebawah, panah kebawah.
58:51Oh gitu. Delay zilot. Baru sampai C.
58:56Kayaknya ada next-nya, pokoknya nggak ditampilin semua saking banyaknya atau gimana.
59:02-Cupa. -Oh gitu.
59:07Jadi dari UI Web GitHub itu sampai nggak cukup.
59:10Apa nggak besar ukurannya? Cuma tab doang nggak besar ya?
59:14-Kecil kok. -Ini kan cuma kecil ya.
59:17Buka aja salah satu contohnya.
59:20Contohnya ya, oke. Tadi ada...
59:22Oh nih, ada tulisannya. "Sorry, we had to truncate this directory to 1000 files."
59:27Sebetulnya isinya ada 7862 package. Cuma yang ditampilin cuma seribu.
59:34Ini misalkan isinya apa?
59:37-Tab definition gitu doang. -Tab definition ya.
59:41Bahkan kalau kita nggak mau install nih, kita cuma pengen pakai salah satu gitu.
59:45Dari library ini kita cuma impor satu metode ya, satu function.
59:49Ya udah kita kopas aja itu tadi.
59:52Bisa dicari... Sekarang Google... Eh, sorry, Google. GitHub ini bisa ada search functionnya.
59:58-Bisa bagus banget kok. -Iya, bisa.
1:00:00-Dicari di sini ya. -Iya.
1:00:02-Misalkan apa tadi? JQuery. -Expression.
1:00:05-JQuery. -JQuery.
1:00:07-Pi repository. -Ini kalau jQuery-nya sendiri...
1:00:10JQuery-nya sendiri udah ada tab definition-nya, nggak bakal ada di sini.
1:00:15-Gak kelihatan. -Ini cuma buat...
1:00:17-Gak ada, Bati. -Ada, tapi kayaknya nggak kelihatan.
1:00:22Support for new jQuery.
1:00:24Ada yang nanya, XTJS ada nggak? XTJS?
1:00:27Ada, cari sendiri lah. Cari sendiri.
1:00:30-JQuery, power picker. -Hahaha.
1:00:35Mana ini ya? Nah, ini dia. Ini kan.
1:00:39-Kin silahkan cari sendiri. -Oh, ada tips-nya bagus tuh.
1:00:42Ada komen bagus tuh paling bawah.
1:00:46-Kalian lihat di NPM.js kalau ada icon DT. -Oh.
1:00:49Berarti ada di definitely type ya.
1:00:52-Oh, nice, nice, nice, nice. -Oh, ini caranya.
1:00:54MGS. Terima kasih.
1:00:56-Tadi. -Terima kasih.
1:00:58-Akan tadi apa? JQuery. -Hahaha.
1:01:01Niat, Niat.
1:01:03Hahaha.
1:01:05Iseng.
1:01:07-Tuh, ada DT-nya. -Oh, ada DT-nya.
1:01:10-Nice, nice. -Ada.
1:01:12Express. Pasti ada. Express juga udah ada ini-nya.
1:01:15Oh, digadikan satu repo ya.
1:01:18Menarik, menarik.
1:01:21Oke, mantap.
1:01:24-JQuery not dead. -JQuery is not dead.
1:01:26-Ya, not dead lah. -Long live, long live.
1:01:29Hahaha.
1:01:31Nah, ini bahasan baru lagi nih.
1:01:34Kalau Mas Donny ini udah kemana-mana eksplorasinya ya.
1:01:38Data Oriented Programming.
1:01:40Nah, baru lagi nih ya.
1:01:42Apa itu? Hahaha.
1:01:44Pake JSON, validasinya bukan di level teknologi web apapun.
1:01:48-Nah, ini mantap. -Tapi di data.
1:01:51Biar framework agnostik kali ya. Bahkan teknologi agnostik kali ya.
1:01:54-Karena itunya di level lain. -Di level data.
1:01:58Kalau nggak salah, Quick atau apa ya?
1:02:00Punya yang baru itu pakenya kayak gitu deh.
1:02:03Jadi, dia menjenerate semacam react component atau apa, on the fly.
1:02:08Builder.io yang punya Quick.
1:02:10Cuma dia kan punya teknologi lagi.
1:02:12Builder.io.
1:02:14Jadi intinya suatu komponen itu dibikin JSON-nya.
1:02:18JSON-nya, nama komponennya apa,
1:02:20-proposinya apa, -Kaik skema ya.
1:02:22behavior-nya gimana,
1:02:24dan diceknya, logiknya semua,
1:02:26bahkan di-store ke database-nya itu dari situ.
1:02:28Jadi, bisa menjenerate komponen
1:02:32pakai framework atau UI library apapun on the fly.
1:02:37-Nih, next level. -Next level.
1:02:41Nah, ini juga pertanyaan bagus.
1:02:44Sebenarnya udah sering kita jawab di episode-episode sebelumnya.
1:02:48Kenapa fitur-fitur TS nggak dimasukin aja ke browser engine,
1:02:52ke JavaScript engine?
1:02:54Susah.
1:02:56Soalnya kan si JavaScript ini,
1:02:59teknologi web secara umum ya,
1:03:01baik itu HTML, CSS, JavaScript,
1:03:03itu harus mengakomodir browser yang paling jadul
1:03:07sampai browser yang paling modern.
1:03:09Kalau kita masukin di engine yang modern,
1:03:13terus orang-orang bikin TypeScript semua,
1:03:15apa kabarnya tuh yang masih pakai IE 11 gitu ya,
1:03:19belum edge, kan?
1:03:21-Nggak bisa jadi error semua. -Harus ada backwards compatibility.
1:03:25-Compatibility. -Compatibility dengan versi sebelumnya.
1:03:27Terus, atmosphere itu kan, apa,
1:03:30kita pernah bahas tuh, itu mereka konferensinya kayak,
1:03:33mereka bikin launching spesifikasinya
1:03:37cuma setahun sekali,
1:03:39dan melibatkan stakeholder-nya,
1:03:41pemangku pentingnya tuh banyak banget dari berbagai perusahaan,
1:03:45yang mana ya sulit lah bikin orang sebanyak itu,
1:03:49dengan kepentingan sebanyak itu,
1:03:51sepakat itu kan agak sulit,
1:03:53jadi emang mungkin cycle-nya juga nggak bisa sembarangan
1:03:58nambahin ini itu, nggak bisa nambahin fitur yang ekstrim.
1:04:02-Betul, karena web itu apa ya, open kan,
1:04:08kalau misalkan katakan lah kayak Android atau iOS gitu,
1:04:12mau nih, yang versi, -Yang punya cuma satu perusahaan.
1:04:14-Iya, nggak support lagi versi ini, Donut gitu kan,
1:04:18Android Donut itu udah nggak support lagi, atau Eclair gitu.
1:04:21-Itu dalam apa, bang?
1:04:23-Ya udah, dimatiin aja, udah, silahkan ganti handphone Anda,
1:04:26kalau nggak bisa gitu kan, segampang itu mereka melakukan,
1:04:29memutus rantai yang dulu-dulu,
1:04:33kalau web kan nggak bisa, terus tiba-tiba ada yang akses web di embedded system,
1:04:38yang masih, yang layarnya kecil, atau yang di mesin apa gitu,
1:04:43mereka akan punya kepentingan,
1:04:45dan si web ini harus mengakomodir semua kepentingan itu,
1:04:49makanya nggak bisa sembarangan, bahkan kayak pertanyaan-pertanyaan seperti,
1:04:54kenapa React nggak masuk aja ke JavaScript Engine,
1:04:57nggak perlu pakai framework lagi, udah semuanya React.
1:04:59Ya itu, jadinya web komponen, ujung-ujungnya ya,
1:05:01yang bisa dipakai semua, tapi masih agnostik lah, gitu.
1:05:07-Tentunya kayak quadcopter yang ada di Mars kan, pakai JavaScript kan.
1:05:11-Tiba-tiba runtime error, itu jatuh.
1:05:16-Gimana coba di sana nanti update-nya?
1:05:19-Specifikasinya berubah, pakai polyfill-nya nggak jalan.
1:05:26Ya, konsiderasinya sangat banyak, gitu.
1:05:29Kalau kita mau nge-post satu fitur aja, itu panjang jalannya.
1:05:32Jadi harus proposal dulu, dari proposal dibahas,
1:05:35abis itu masuk ke kandidat, dan seterusnya kita udah pernah bahas juga ya, prosesnya.
1:05:41Walaupun sebenarnya ada, wacana ke sana ada,
1:05:44jadi kabarnya JavaScript mau ditambahkan type, ya mungkin sifatnya opsional.
1:05:50Tapi ya itu masih panjang jalannya, gitu.
1:05:53Ada kemungkinan tetap, ada kemungkinan.
1:05:56-Itu di JavaScript-nya atau di ECMA script-nya ya, berarti?
1:05:59Dari ECMA script? -Di ECMA-nya.
1:06:01Ya, contohnya gini aja.
1:06:04Contohnya gini, kalau ada yang tahu coffee script,
1:06:08beberapa fitur IS-6 itu diadaptasi dari coffee script.
1:06:15Contohnya arrow function, itu dari coffee script.
1:06:18Dulu JavaScript nggak bisa arrow function kan, sekarang bisa.
1:06:22Jadi ada bahasa, dalam tanda kutip bahasa transpiler yang di atas JavaScript,
1:06:27yang kadang-kadang kalau make sense,
1:06:30itu akan diadaptasi ke dalam JavaScript-nya sendiri atau ke dalam ECMA script.
1:06:35Jadi kemungkinan ke sana tetap ada, tapi jalannya agak panjang.
1:06:39-Mungkin kembali lagi ke pembahasan kita yang lalu di JavaScript engine.
1:06:44JavaScript engine itu nggak cuma, JavaScript engine itu bukan Node.js loh.
1:06:48JavaScript engine itu V8.js, Spider Monkey.
1:06:53-Java script core. -Java script core yang punya Apple.
1:06:57-Webkit. -Webkit.
1:07:00Jadi JavaScript engine kan rantainya yang salah.
1:07:08Yang menjalankan ya, engine-nya untuk menjalankan JavaScript.
1:07:12Jadi kalau misalnya mau menambahkan sesuatu, harus agree dulu nih.
1:07:16Minimal yang Fendor yang tiga ini agree.
1:07:20Oke, kalau kita mau nambahin TypeScript,
1:07:22berarti ketiga ini harus agree untuk nambahin TypeScript.
1:07:25-Mereka semua harus mengimplementasi di mesin mereka, dekode mereka sendiri-sendiri.
1:07:31-Iya. Dan mereka punya masing-masing ini kan, punya masing-masing kepentingan.
1:07:38-Tergantung device-nya. Eh, Samsung browser itu pakai apa engine-nya?
1:07:44-Chromium? -Chromium ya.
1:07:47-Aman berarti ya? -Ya.
1:07:49-Aman. Dolphin, Dolphin pakai apa Dolphin?
1:07:52-Apa itu? UC ya? UC browser.
1:07:56-UC browser. Banyak. Jadi banyak sekali.
1:08:01-Opera mini, opera mini. -Opera mini dulu ya beda lagi tuh ya.
1:08:06-Serem itu. Untung udah nggak ada yang pakai.
1:08:09-Udah gele-gelek mereka yang mengalami. Ini pertanyaan Mas Donny ini apa ini maksudnya nih?
1:08:16Nggak ngerti nih. Vendoring itu apa?
1:08:18-Pendukung tanpa meng-include di... -How could we support TypeScript without vendoring it?
1:08:25-Sebagai pembuat aplikasi web atau sebagai... -Pembuat library.
1:08:31-Pembuat library yang diinstall orang atau apa ya?
1:08:34Kalau di library kan kita bisa pakai apa itu? Ini sebetulnya dev dependency kan.
1:08:41Jadi itu dihandle oleh si package manager kan.
1:08:46Kalau misalnya pakai yang package manager yang kayak PNPM atau mungkin sekarang yarn workspace juga udah bisa kayaknya ya.
1:08:56Dia ngedeteksi di user yang menginstall library kita tuh, dia udah punya TypeScript atau belum.
1:09:03Kalau udah kayaknya bisa nggak beneran install TypeScript lagi deh di dependency-nya, di node modules-nya.
1:09:12-Ini tadi ada yang minta demo-in, jalanin TypeScript buat Node.js.
1:09:19Wah saya lagi nggak di development laptop nih. Jadi saya tunjukin ini aja.
1:09:26-Streaming laptop.
1:09:29Itu tadi yang playground-nya itu aja.
1:09:33-Kalau pengen nyoba tanpang install harus Node.js, susah.
1:09:39Kalau pengen nyoba tanpang excel, ya itu.
1:09:42-Kalau pengen nyoba tanpang excel, ya itu. -Kalau pengen nyoba tanpang excel, ya itu.
1:09:43-Kalau pengen nyoba tanpang excel, ya itu. -Kalau pengen nyoba tanpang excel, ya itu.
1:09:44-Kalau pengen nyoba tanpang excel, ya itu. -Kalau pengen nyoba tanpang excel, ya itu.
1:09:45-Kalau pengen nyoba tanpang excel, ya itu. -Kalau pengen nyoba tanpang excel, ya itu.
1:09:46-Kalau pengen nyoba tanpang excel, ya itu. -Kalau pengen nyoba tanpang excel, ya itu.
1:09:47-Kalau pengen nyoba tanpang excel, ya itu. -Kalau pengen nyoba tanpang excel, ya itu.
1:09:59-Kalau pengen nyoba tanpang excel, ya itu. -Kalau pengen nyoba tanpang excel, ya itu.
1:10:00-Kalau pengen nyoba tanpang excel, ya itu. -Kalau pengen nyoba tanpang excel, ya itu.
1:10:01-Kalau pengen nyoba tanpang excel, ya itu. -Kalau pengen nyoba tanpang excel, ya itu.
1:10:02-Kalau pengen nyoba tanpang excel, ya itu. -Kalau pengen nyoba tanpang excel, ya itu.
1:10:03-Kalau pengen nyoba tanpang excel, ya itu. -Kalau pengen nyoba tanpang excel, ya itu.
1:10:04-Kalau pengen nyoba tanpang excel, ya itu. -Kalau pengen nyoba tanpang excel, ya itu.
1:10:28-Kalau pengen nyoba tanpang excel, ya itu. -Kalau pengen nyoba tanpang excel, ya itu.
1:10:29-Kalau pengen nyoba tanpang excel, ya itu. -Kalau pengen nyoba tanpang excel, ya itu.
1:10:30-Kalau pengen nyoba tanpang excel, ya itu. -Kalau pengen nyoba tanpang excel, ya itu.
1:10:31-Kalau pengen nyoba tanpang excel, ya itu. -Kalau pengen nyoba tanpang excel, ya itu.
1:10:32-Kalau pengen nyoba tanpang excel, ya itu. -Kalau pengen nyoba tanpang excel, ya itu.
1:10:33-Kalau pengen nyoba tanpang excel, ya itu.
1:11:00-Kalau pengen nyoba tanpang excel, ya itu.
1:11:26-Kalau pengen nyoba tanpang excel, ya itu. -Kalau pengen nyoba tanpang excel, ya itu.
1:11:51-Kalau pengen nyoba tanpang excel, ya itu. -Kalau pengen nyoba tanpang excel, ya itu.
1:12:14-Kalau pengen nyoba tanpang excel, ya itu. -Kalau pengen nyoba tanpang excel, ya itu.
1:12:15-Kalau pengen nyoba tanpang excel, ya itu. -Kalau pengen nyoba tanpang excel, ya itu.
1:12:16-Kalau pengen nyoba tanpang excel, ya itu. -Kalau pengen nyoba tanpang excel, ya itu.
1:12:17-Kalau pengen nyoba tanpang excel, ya itu. -Kalau pengen nyoba tanpang excel, ya itu.
1:12:18-Kalau pengen nyoba tanpang excel, ya itu. -Kalau pengen nyoba tanpang excel, ya itu.
1:12:19-Kalau pengen nyoba tanpang excel, ya itu. -Kalau pengen nyoba tanpang excel, ya itu.
1:12:24-Kalau pengen nyoba tanpang excel, ya itu. -Kalau pengen nyoba tanpang excel, ya itu.
1:12:27-Kalau pengen nyoba tanpang excel, ya itu. -Kalau pengen nyoba tanpang excel, ya itu.
1:12:29-Kalau pengen nyoba tanpang excel, ya itu. -Kalau pengen nyoba tanpang excel, ya itu.
1:12:31-Kalau pengen nyoba tanpang excel, ya itu. -Kalau pengen nyoba tanpang excel, ya itu.
1:12:33-Kalau pengen nyoba tanpang excel, ya itu. -Kalau pengen nyoba tanpang excel, ya itu.
1:12:35-Kalau pengen nyoba tanpang excel, ya itu. -Kalau pengen nyoba tanpang excel, ya itu.
1:12:51-Kalau pengen nyoba tanpang excel, ya itu. -Kalau pengen nyoba tanpang excel, ya itu.
1:12:53-Kalau pengen nyoba tanpang excel, ya itu. -Kalau pengen nyoba tanpang excel, ya itu.
1:12:55-Kalau pengen nyoba tanpang excel, ya itu. -Kalau pengen nyoba tanpang excel, ya itu.
1:12:57-Kalau pengen nyoba tanpang excel, ya itu. -Kalau pengen nyoba tanpang excel, ya itu.
1:12:59-Kalau pengen nyoba tanpang excel, ya itu. -Kalau pengen nyoba tanpang excel, ya itu.
1:13:01-Kalau pengen nyoba tanpang excel, ya itu. -Kalau pengen nyoba tanpang excel, ya itu.
1:13:07-Kalau pengen nyoba tanpang excel, ya itu. -Kalau pengen nyoba tanpang excel, ya itu.
1:13:09-Kalau pengen nyoba tanpang excel, ya itu. -Kalau pengen nyoba tanpang excel, ya itu.
1:13:11-Kalau pengen nyoba tanpang excel, ya itu. -Kalau pengen nyoba tanpang excel, ya itu.
1:13:13-Kalau pengen nyoba tanpang excel, ya itu. -Kalau pengen nyoba tanpang excel, ya itu.
1:13:15-Kalau pengen nyoba tanpang excel, ya itu. -Kalau pengen nyoba tanpang excel, ya itu.
1:13:17-Kalau pengen nyoba tanpang excel, ya itu. -Kalau pengen nyoba tanpang excel, ya itu.
1:13:31-Kalau pengen nyoba tanpang excel, ya itu. -Kalau pengen nyoba tanpang excel, ya itu.
1:13:33-Kalau pengen nyoba tanpang excel, ya itu. -Kalau pengen nyoba tanpang excel, ya itu.
1:13:35-Kalau pengen nyoba tanpang excel, ya itu. -Kalau pengen nyoba tanpang excel, ya itu.
1:13:37-Kalau pengen nyoba tanpang excel, ya itu. -Kalau pengen nyoba tanpang excel, ya itu.
1:13:39-Kalau pengen nyoba tanpang excel, ya itu. -Kalau pengen nyoba tanpang excel, ya itu.
1:13:41-Kalau pengen nyoba tanpang excel, ya itu. -Kalau pengen nyoba tanpang excel, ya itu.
1:13:47-Kalau pengen nyoba tanpang excel, ya itu. -Kalau pengen nyoba tanpang excel, ya itu.
1:13:49-Kalau pengen nyoba tanpang excel, ya itu. -Kalau pengen nyoba tanpang excel, ya itu.
1:13:51-Kalau pengen nyoba tanpang excel, ya itu. -Kalau pengen nyoba tanpang excel, ya itu.
1:13:53-Kalau pengen nyoba tanpang excel, ya itu. -Kalau pengen nyoba tanpang excel, ya itu.
1:13:55-Kalau pengen nyoba tanpang excel, ya itu. -Kalau pengen nyoba tanpang excel, ya itu.
1:13:57-Kalau pengen nyoba tanpang excel, ya itu. -Kalau pengen nyoba tanpang excel, ya itu.
1:14:11-Kalau pengen nyoba tanpang excel, ya itu. -Kalau pengen nyoba tanpang excel, ya itu.
1:14:13-Kalau pengen nyoba tanpang excel, ya itu. -Kalau pengen nyoba tanpang excel, ya itu.
1:14:15-Kalau pengen nyoba tanpang excel, ya itu. -Kalau pengen nyoba tanpang excel, ya itu.
1:14:17-Kalau pengen nyoba tanpang excel, ya itu. -Kalau pengen nyoba tanpang excel, ya itu.
1:14:19-Kalau pengen nyoba tanpang excel, ya itu. -Kalau pengen nyoba tanpang excel, ya itu.
1:14:21-Kalau pengen nyoba tanpang excel, ya itu. -Kalau pengen nyoba tanpang excel, ya itu.
1:14:27-Kalau pengen nyoba tanpang excel, ya itu. -Kalau pengen nyoba tanpang excel, ya itu.
1:14:29-Kalau pengen nyoba tanpang excel, ya itu. -Kalau pengen nyoba tanpang excel, ya itu.
1:14:31-Kalau pengen nyoba tanpang excel, ya itu. -Kalau pengen nyoba tanpang excel, ya itu.
1:14:33-Kalau pengen nyoba tanpang excel, ya itu. -Kalau pengen nyoba tanpang excel, ya itu.
1:14:35-Kalau pengen nyoba tanpang excel, ya itu. -Kalau pengen nyoba tanpang excel, ya itu.
1:14:37-Kalau pengen nyoba tanpang excel, ya itu. -Kalau pengen nyoba tanpang excel, ya itu.
1:14:51-Kalau pengen nyoba tanpang excel, ya itu. -Kalau pengen nyoba tanpang excel, ya itu.
1:14:53-Kalau pengen nyoba tanpang excel, ya itu. -Kalau pengen nyoba tanpang excel, ya itu.
1:14:55-Kalau pengen nyoba tanpang excel, ya itu. -Kalau pengen nyoba tanpang excel, ya itu.
1:14:57-Kalau pengen nyoba tanpang excel, ya itu. -Kalau pengen nyoba tanpang excel, ya itu.
1:14:59-Kalau pengen nyoba tanpang excel, ya itu. -Kalau pengen nyoba tanpang excel, ya itu.
1:15:01-Kalau pengen nyoba tanpang excel, ya itu. -Kalau pengen nyoba tanpang excel, ya itu.
1:15:07-Kalau pengen nyoba tanpang excel, ya itu. -Kalau pengen nyoba tanpang excel, ya itu.
1:15:09-Kalau pengen nyoba tanpang excel, ya itu. -Kalau pengen nyoba tanpang excel, ya itu.
1:15:11-Kalau pengen nyoba tanpang excel, ya itu. -Kalau pengen nyoba tanpang excel, ya itu.
1:15:13-Kalau pengen nyoba tanpang excel, ya itu. -Kalau pengen nyoba tanpang excel, ya itu.
1:15:15-Kalau pengen nyoba tanpang excel, ya itu. -Kalau pengen nyoba tanpang excel, ya itu.
1:15:17-Kalau pengen nyoba tanpang excel, ya itu. -Kalau pengen nyoba tanpang excel, ya itu.
1:15:31-Kalau pengen nyoba tanpang excel, ya itu. -Kalau pengen nyoba tanpang excel, ya itu.
1:15:33-Kalau pengen nyoba tanpang excel, ya itu. -Kalau pengen nyoba tanpang excel, ya itu.
1:15:35-Kalau pengen nyoba tanpang excel, ya itu. -Kalau pengen nyoba tanpang excel, ya itu.
1:15:37-Kalau pengen nyoba tanpang excel, ya itu. -Kalau pengen nyoba tanpang excel, ya itu.
1:15:39-Kalau pengen nyoba tanpang excel, ya itu. -Kalau pengen nyoba tanpang excel, ya itu.
1:15:41-LipUV itu ditulis dengan C++.
1:15:49-LipUV itu ditulis dengan C++. -LipUV itu ditulis dengan C++.
1:15:51-LipUV itu ditulis dengan C++. -LipUV itu ditulis dengan C++.
1:15:53-LipUV itu ditulis dengan C++. -LipUV itu ditulis dengan C++.
1:15:55-LipUV itu ditulis dengan C++. -LipUV itu ditulis dengan C++.
1:15:57-LipUV itu ditulis dengan C++. -LipUV itu ditulis dengan C++.
1:15:59-LipUV itu ditulis dengan C++. -LipUV itu ditulis dengan C++.
1:16:01-LipUV itu ditulis dengan C++. -LipUV itu ditulis dengan C++.
1:16:03-LipUV itu ditulis dengan C++. -LipUV itu ditulis dengan C++.
1:16:11-LipUV itu ditulis dengan C++. -LipUV itu ditulis dengan C++.
1:16:13-LipUV itu ditulis dengan C++. -LipUV itu ditulis dengan C++.
1:16:15-LipUV itu ditulis dengan C++. -LipUV itu ditulis dengan C++.
1:16:17-LipUV itu ditulis dengan C++. -LipUV itu ditulis dengan C++.
1:16:19-LipUV itu ditulis dengan C++. -LipUV itu ditulis dengan C++.
1:16:21-LipUV itu ditulis dengan C++. -LipUV itu ditulis dengan C++.
1:16:23-LipUV itu ditulis dengan C++. -LipUV itu ditulis dengan C++.
1:16:33-LipUV itu ditulis dengan C++. -LipUV itu ditulis dengan C++.
1:16:35-LipUV itu ditulis dengan C++. -LipUV itu ditulis dengan C++.
1:16:37-LipUV itu ditulis dengan C++. -LipUV itu ditulis dengan C++.
1:16:39-LipUV itu ditulis dengan C++. -LipUV itu ditulis dengan C++.
1:16:41-LipUV itu ditulis dengan C++. -LipUV itu ditulis dengan C++.
1:16:43-LipUV itu ditulis dengan C++. -LipUV itu ditulis dengan C++.
1:16:45-Untuk topik sendiri kita rantai JavaScript belum pernah bahas ya. -Untuk topik sendiri kita rantai JavaScript belum pernah bahas ya.
1:16:55-Enak kan? Kita kan? Nggak perlu nyari-nyari lagi. -Enak kan? Kita kan? Nggak perlu nyari-nyari lagi.
1:16:59-Yang ngomong bintang tamu. -Yang ngomong bintang tamu.
1:17:01-Yang ngomong bintang tamu. -Yang ngomong bintang tamu.
1:17:03-Yang ngomong bintang tamu. -Yang ngomong bintang tamu.
1:17:05-Kita tinggal nanya-nanya aja. -Kita tinggal nanya-nanya aja.
1:17:07-Kita tinggal nanya-nanya aja. -Kita tinggal nanya-nanya aja.
1:17:09-Yang ngomong bintang tamu. -Yang ngomong bintang tamu.
1:17:15-Yang ngomong bintang tamu. -Yang ngomong bintang tamu.
1:17:17-Yang ngomong bintang tamu. -Yang ngomong bintang tamu.
1:17:19-Yang ngomong bintang tamu. -Yang ngomong bintang tamu.
1:17:21-Yang ngomong bintang tamu. -Yang ngomong bintang tamu.
1:17:23-Yang ngomong bintang tamu. -Yang ngomong bintang tamu.
1:17:25-Yang ngomong bintang tamu. -Yang ngomong bintang tamu.
1:17:27-Yang ngomong bintang tamu. -Yang ngomong bintang tamu.
1:17:29-Nest. -Nest.
1:17:39-Nest. -Nest.
1:17:41-Nest. -Nest.
1:17:43-Nest. -Nest.
1:17:45-Yang ngomong bintang tamu. -Yang ngomong bintang tamu.
1:17:47-Yang ngomong bintang tamu. -Yang ngomong bintang tamu.
1:17:49-Yang ngomong bintang tamu. -Yang ngomong bintang tamu.
1:17:51-Yang ngomong bintang tamu. -Yang ngomong bintang tamu.
1:17:53-Yang ngomong bintang tamu. -Yang ngomong bintang tamu.
1:17:55-Yang ngomong bintang tamu. -Yang ngomong bintang tamu.
1:17:57-Yang ngomong bintang tamu. -Yang ngomong bintang tamu.
1:17:59-Yang ngomong bintang tamu. -Yang ngomong bintang tamu.
1:18:01-Yang ngomong bintang tamu. -Yang ngomong bintang tamu.
1:18:03-Yang ngomong bintang tamu. -Yang ngomong bintang tamu.
1:18:05-Yang ngomong bintang tamu. -Yang ngomong bintang tamu.
1:18:07-Yang ngomong bintang tamu. -Yang ngomong bintang tamu.
1:18:09-Yang ngomong bintang tamu. -Yang ngomong bintang tamu.
1:18:11-Yang ngomong bintang tamu. -Yang ngomong bintang tamu.
1:18:13-Yang ngomong bintang tamu. -Yang ngomong bintang tamu.
1:18:27-Yang ngomong bintang tamu. -Yang ngomong bintang tamu.
1:18:29-Yang ngomong bintang tamu. -Yang ngomong bintang tamu.
1:18:31-Yang ngomong bintang tamu. -Yang ngomong bintang tamu.
1:18:33-Yang ngomong bintang tamu. -Yang ngomong bintang tamu.
1:18:35-Yang ngomong bintang tamu. -Yang ngomong bintang tamu.
1:18:37-Yang ngomong bintang tamu. -Yang ngomong bintang tamu.
1:18:39-Yang ngomong bintang tamu. -Yang ngomong bintang tamu.
1:18:41-Yang ngomong bintang tamu. -Yang ngomong bintang tamu.
1:18:43-Yang ngomong bintang tamu. -Yang ngomong bintang tamu.
1:18:45-Yang ngomong bintang tamu. -Yang ngomong bintang tamu.
1:18:47-Yang ngomong bintang tamu. -Yang ngomong bintang tamu.
1:18:49-Yang ngomong bintang tamu. -Yang ngomong bintang tamu.
1:18:51-Yang ngomong bintang tamu. -Yang ngomong bintang tamu.
1:18:53-Yang ngomong bintang tamu. -Yang ngomong bintang tamu.
1:18:55-Yang ngomong bintang tamu. -Yang ngomong bintang tamu.
1:18:57-Kalau jadi ray, tidak di-convert jadi set. Ya, pertanyaan bagus ini. Saya juga nggak tahu jawabannya kenapa.
1:19:11-Oh, ini ada kemungkinan di setting ts-config-nya.
1:19:19-Kalau ts-config-nya masih is3, ya pasti ke ray, kan.
1:19:23-Kalau misalkan ke isnext, mungkin dia akan jadi set. Mungkin ya.
1:19:26-Mungkin, coba. Coba nanti kasih tahu kita. -Yes.
1:19:30-Ts buatannya rivalnya Google. Iya, tadi menjawabin tadi ya.
1:19:35-Kusus teknologi. Apa, refill itu ya nama perusahaan. Cuma kayaknya kalau teknologi web ini paling unik deh.
1:19:42-Paling unik, betul. -Gak bisa di, kalau tadi kayak contoh Android,
1:19:47iPhone kan jelas perusahaannya apa ya, dan bisa strict apa, ya emang ekosistemnya di situ doang.
1:19:54Cuma kalau web kan kayaknya. -Web itu komuniti.
1:19:59-Even di Chrome kita bisa membuka website atau web app yang dibuat dengan React.
1:20:05Ya kan, nggak mungkin kan Chrome memblokir website yang dibikin pakai React.
1:20:10Karena React jelas punya perusahaan lain.
1:20:13Kayaknya jadi web itu satu-satunya yang ekosistemnya random bisa kita sekali develop bisa ketemu banyak perusahaan.
1:20:23-Sama aja lah, kayak kenapa Android nggak pakai golenk, padahal Java kan bukan punya dia, gitu kan.
1:20:29Sama aja kan. Bukan buatannya dia, malah pakai punya yang lain.
1:20:35Tuh kan jadi gontok-gontokan kan di pengadilan kan. -Iya ya.
1:20:40-Iya kan, rebutan. Bisa tidak langsung belajar TS tanpa JS?
1:20:46Btw basic saya C#. Sebenernya kayaknya cocok ya. -Cocok lagi.
1:20:50-Iya cocok. Karena C# itu mirip. Bukan mirip ya.
1:20:55-Tapi tetap harus butuh dasar JavaScript yang itu tadi. -Iya.
1:21:02-Iya. Yang buat juga orang yang sama. -Iya.
1:21:08-Jadi sebenarnya cocok. Cuman kalau ketemu error, biasanya kalau errornya TypeScript mungkin aman.
1:21:17Tapi kalau errornya di JavaScript, di runtime, ya kita butuh tahu JavaScriptnya kan.
1:21:22Terus apa yang fundamental tadi, kayak event loop, promise, asing await, callback, event loop, dan lain-lain itu ya JavaScript semua sebenarnya.
1:21:36-Iya dan eventually semua kode TypeScript kita akan dipompil lagi ke JavaScript yang bisa dibaca oleh browser.
1:21:43Jadi ya mau nggak mau, mesti ngerti lah, ngerti JavaScript. Cuman kalau perkara belajarnya ya kalau emang dirasa bisa dan nyaman,
1:21:52belajar dua-duanya. Maksudnya nggak beneran harus blocking, nyelesain belajar JavaScript dulu, habis itu baru TypeScript.
1:21:57-Iya, sambil ya. -Yang nggak wajib gitu juga, disambil pun nggak apa-apa.
1:22:01Asal kita sadar bahwa tetap perlu tahu behaviornya JavaScript, apalah misalnya jenis-jenis datanya kayak gimana,
1:22:09konsep-konsepnya yang kita tadi disebut, event loop, dan lain-lainnya kayak gimana, asal kita pelajarin itu barengan dengan gadget TypeScript.
1:22:19-Ya. -Apa nonton ngobrolin webstrip Aris Lhasa?
1:22:22-Asik, asik. Jualan. Ya ini tuh, less coding tuh, udah ada yang jawab ya. Kalau udah terbiasa dengan CSS, ini berasa kenal ya sama TS ya.
1:22:35Karena yang bikinnya sama juga, orang yang sama. Tadi ada yang menjawab itu yang full stack tadi, nest.js,
1:22:41ada juga yang saya baru ingat namanya adalah Adonis.js. Adonis ini adalah yang mirip sama Laravel katanya.
1:22:48-Versinya Node.js? -Versinya Node.js. Versi itu dia front-end kan? Front-end, back-end? Oh, back-end, Node.js.
1:22:56-Oh, back-end, back-end. -Ya, back-end. -Kalau mau ngerender, ngeretern, html, dibikin pake script juga bisa.
1:23:05-Hah, oke. Eh, kita udah satu setengah jam loh, seru juga ya. -Seru juga, padahal dari sebelumnya udah farm, kayaknya nggak ada materi,
1:23:17nggak belajar apa-apaan, cuma ngobrol beneran. -Iya, ini insight dari temen-temen lebih menarik ini.
1:23:23Karena banyak yang udah ngalamin juga, ada yang pake, ada yang belum pake, ada yang mau belajar, gitu kan.
1:23:27Jadi terima kasih ya buat diskusinya malam hari ini. Kita banyak belajar juga dari temen-temen.
1:23:33Ada lagi yang mau disampaikan, Eka, Ivan? -Ada, tadi kan ngomongin error typescript tuh pas belajar.
1:23:41Coba buka tuh yang di chat. Typescript.tv/errors. -Tadi udah dibuka, nah ini. Terakhir ya.
1:23:51Typescript error, and how to fix them. -Nah, kita kan scroll dikit.
1:23:57Nah sebel kan tuh pasti mouse over TS 2322, TS 2335, kayak ngoleksi Pokemon aja.
1:24:06Jadi ini adalah penjelasannya. Kalo kepala satu, dua, empat, blablabla, terus diklik aja tuh salah satu contoh.
1:24:13Oke, kalo misalkan ini. Oh, ada videonya segala. -Nah, mungkin kalo kata-katanya,
1:24:23penjelasannya private modifier cannot appear on a type member. Apa itu? Kita kan ga ngerti sebel kan.
1:24:29Ini dikasih contohnya yang simple, straight to the point, kita bakal lebih gampang paham.
1:24:37Oke, wah ini nih, bener. -Yang masalahnya gimana, mpinterinya gimana.
1:24:43Oh, menarik, menarik. -Nice. Ini nih. -Iya.
1:24:48Gue mau belajar typescript begitu gue ngobrolin di sini, besok-besok langsung lebih cepat belajarnya.
1:24:54Iya, tadi kan ada yang... -Besok langsung ngebujukin lead, ganti semua ke typescript.
1:25:01Ada yang di awal tadi ya, yang bilang malah makin lambat ya ini kan.
1:25:07Pakai malah makin lambat karena nyari typenya berjam-jam dan ya error-nya tadi ya,
1:25:11ternyata udah ada yang ngumpulin nih di sini nih. Sampai berapa nih? Errornya aja berapa nih?
1:25:18-Banyak. -Oh, ga banyak, engga.
1:25:20Terus sampai bawah, ternyata itu satu halaman ya. 100, 219 saja.
1:25:27Wajar nih, itu bukan saja. -Nah, itu tadi kayak Pokemonnya itu.
1:25:35-Tigal kontrol F. -Tigal kontrol F kan, cari.
1:25:39-Anggap aja collectible. Kita mengkoleksi udah ketemu semua error atau belum.
1:25:44Ketemu semua bisa tuker payung cantik.
1:25:47-Tuh, ada yang nungguin ngobrolin PHP loh. Kapan kita ngobrolin PHP?
1:25:53-Bisa, bisa. Nanti kita undang ini Om Peter. -Bapak PHP Indonesia ya.
1:26:00-Ada yang jawab tuh tentang set. -Oh, yang tadi set.
1:26:04-Kalau pakai skat. -Masuk akal, masuk akal.
1:26:07-Set remove duplicate value. -Iya, enak sih itu.
1:26:10-Set remove duplicate value.
1:26:14-Kalau udah mentok tinggal TS ignore. Haha. Sama aja kayak ini ya.
1:26:23-Cuma ternyata si yang bikin project bikin ISLint rule. -Strict.
1:26:28-Kalau TS ignore nih, marahin. Bisa, ISLintnya diignore, ignore satu time.
1:26:34-Gak boleh push, gak boleh push. Nggak lolos. Sekarang enak, betul.
1:26:39Tinggal chat GPT, pakai chat GPT ya. Ini error apa, gitu kan.
1:26:46-Tapi kalau aku chat GPT-nya jawabannya bisa ngaco juga. -Iya jelas.
1:26:54-Tuh, titip topik, yang belum pernah kita, ada yang implement belum.
1:26:59Best practices for TypeScript in multi repo.
1:27:02-Multi repo apa? -Multi repo itu lawannya mono repo, bukan?
1:27:07-Kalau dari kata-katanya, ya mono satu, multi banyak.
1:27:13-Cuma ini Movin bisa ditarik, jadi itu shared configuration nggak sih kan selama ini project itu ada TS config, ada ISLint config,
1:27:24logikanya kalau kita pingin streamline, gimana caranya biar itu satu config yang sama, yang konsisten bisa dipakai di banyak project.
1:27:31Cuma caranya gimana kita juga nggak tahu sih. Nanti kapan-kapan dibahas lah, masukin wishlist.
1:27:39-Bisa ada caranya, terserah. -Disimpan ya.
1:27:46-Kampannya begitu juga. -Disimpan ya untuk episode-episode berikutnya ya.
1:27:50-Cuma itu topik yang seru sih. -Seru, seru.
1:27:54Kita bahas mono repo juga belum kan, micro front-end juga belum kan, masih banyak.
1:28:01Masih banyak, sabar, tenang, tenang. Makanya jangan lupa subscribe ya.
1:28:07Katanya TS lebih safety dibandingkan JS, benar dari tadi kita ngomong dari awal.
1:28:13-Safety itu type safety ya. -Safety di sini maksudnya gini ya, apa?
1:28:19-Static analysis. -Static analysis, jadi misalkan menghindari kesalahan-kesalahan gitu.
1:28:25Misalkan satu ditambah string 1, jadinya 11 gitu kan, atau ada typo, dan lain-lain.
1:28:31Biasanya kan kalau kita tulis di JavaScript, bisa aja itu masuk ke production kan.
1:28:37Dan yang menerima error itu adalah user, biasanya kita pasang sentri, pokoknya login sistem gitu kan.
1:28:44Nanti kirimin errornya, oh errornya undefined is not a function atau undefined gak bisa di lowercase kan.
1:28:51Ya iyalah bukan string gitu kan, nah itu kan tidak safety gitu kan.
1:28:55-Makanya dengan TS dia lebih safety, maksudnya safety itu disitu bukan akuritas. -Dan selain itu safety pas static analysis kita develop.
1:29:05Nah kalau di front-end nih, terutama kalau kita ngerjain front-end,
1:29:09itu bisa juga safety dalam menghadapi kayak bisnis logic lah, bisnis requirement.
1:29:14Kayak contoh konkret nih yang pernah dialamin.
1:29:17Misalnya di awal jenis user itu cuma satu, yang daftar dari email dan password.
1:29:23Jadi semua user harus ada emailnya, harus ada passwordnya jelas.
1:29:28Tapi abis itu ada development baru, ada ticket baru, feature baru, user bisa daftar lewat SMS.
1:29:34Phone number dikirimin OTP ya kan.
1:29:37Nah kan user itu jadi berubah kan, user itu bisa jadi user yang pakai email.
1:29:45Di mana email, pasti harus ada emailnya gak boleh kosongan, bisa juga user yang pakai SMS.
1:29:51Nah dia gak punya field email, gak punya field password.
1:29:55Nah namanya developer manusia kita bisa, mungkin di modul atau di bagian kode yang loginnya, kita tahu itu kita ngebah itu.
1:30:04Tapi mungkin di halaman settings atau halaman account, ada yang kita lewat, kita lupa, kita nganggep email itu pasti ada.
1:30:11Nah kalau kita gak handle itu kan bisa mengakibatkan error.
1:30:14Nah dengan TypeScript, otomatis itu bakal nyala sendiri jadi error.
1:30:19Jadi kita pasti mengupdate kode kita setiap ada perubahan dari business requirement.
1:30:26Jadi itu secara ke langsung type safety dalam hal static analysis dalam development khususnya front-end.
1:30:34Oke mantap.
1:30:36Nah sambil ngobrol nih, sambil ngobrol ya, kalau teman-teman, ada waktu sedikit?
1:30:43Bisa ke bit.ly/tiga-kata-ngobrolin-web, jadi tuliskan tiga kata yang menggambarkan acara ngobrolin web malam hari ini.
1:30:51Kita pengen tahu feedbacknya teman-teman, ayo ditunggu sampai ada yang ngisi.
1:30:57Kalau gak kita gak udahan.
1:30:59Kita ngobrol terus-terus.
1:31:01Terus mereka gak ngisi-ngisi.
1:31:04Oh ada, udah ada yang ngisi nih, lihat tuh.
1:31:07Tapi ngisinya minta di demo-in.
1:31:13Ya lumayan, minimal ada yang ngisi.
1:31:24Tadi siang atasan demo-in prototype, prototype ini bikin contoh aplikasi ya.
1:31:33Terus ada dekan yang tanya kenapa gak pakai TS, jawabannya biar cepat.
1:31:37Salah satu kelebihan dari bahasa yang dinamis itu lebih cepat ya.
1:31:43Iterasinya lebih cepat, tapi belum tentu tadi, safety ya.
1:31:47Dan bahkan kalau cuma buat demo sih gak apa-apa, malah enak JavaScript bisa dikopas langsung ke browser DevTools.
1:31:54Kalau pengen beneran buru-buru banget ngetes suatu function misalnya.
1:31:59Betul.
1:32:01Terus selama ini bingung kalau nge-fetch data yang kompleks.
1:32:05Tapi si penyedia data gak nyediain typenya.
1:32:07Jadi harus bikin typenya sendiri, manual.
1:32:09Iya, itulah salah satunya ya.
1:32:11Oh bagi link-nya.
1:32:13Oke, siap-siap.
1:32:15Sebentar ya, link-nya itu ada di sini.
1:32:17Saya kopas dulu.
1:32:19Kopas.
1:32:21Nah, eh kelihatan ya, jangan.
1:32:23Gak apa-apa juga sih.
1:32:25Gak apa-apa.
1:32:27Gak apa-apa.
1:32:29Paling tiba-tiba ada yang masuk stream, biar.
1:32:31Oh iya.
1:32:33Gak apa-apa juga.
1:32:35Tapi bisa ditolak, bisa ditolak.
1:32:37Santai.
1:32:39Slow, santai.
1:32:41TSEZ, asik.
1:32:43TSEZ, mantap.
1:32:45Menarik.
1:32:47Terima kasih ya, mantap.
1:32:49Terima kasih.
1:32:51Wah, seru juga ngeliatin ini ya.
1:32:55Saya telat join.
1:32:57Makanya subscribe.
1:32:59Terus ada itu, ada lonceng itu dinyalain ya.
1:33:01Biar gak telat, gitu.
1:33:03Kan bisa on-demand juga.
1:33:05Kalau deklar, nonton lagi dari awal.
1:33:07Pendapatnya soal masa depan you.
1:33:09You ini apa?
1:33:11You saya tahu.
1:33:13You man.
1:33:15You man.
1:33:17You man, gimana jaman dulu banget.
1:33:19Keburu-buru.
1:33:21Keburu-buru.
1:33:23Ya udah.
1:33:25Gitu kan? You man, kan?
1:33:27Yang logonya kayak prajurit gitu ya.
1:33:29Logonya apa sih? Kayak orang pake...
1:33:31Bukan playan ya?
1:33:35Pokoknya logonya orang
1:33:37pake seragam apa gitu?
1:33:39You man sama Grand GS
1:33:41pokoknya.
1:33:43Grand GS.
1:33:45Svelkit plus TSEZ.
1:33:49Svelkit.
1:33:51Svelkit.
1:33:53Udah support.
1:33:55Tinggal lang sama dengan TS.
1:33:57Ya kita bikin dari
1:33:59starter nih create new Svelkit site.
1:34:01Udah ada opsi buat pake live stream,
1:34:03pake ASLIN. Udah lah tinggal
1:34:05pencet sekali, enter-enter aja.
1:34:07Langsung diurus
1:34:09oleh starternya.
1:34:11Web component. Eh salah.
1:34:13Bukan ini, tadi saya mau ini.
1:34:15Framework.
1:34:17RAS. Oh RAS.
1:34:19Belum, kita belum...
1:34:21Belum punya pendapat.
1:34:23Belum nyobain.
1:34:25Ya, lead component juga menarik nih
1:34:27topiknya. Terima kasih ya, dia.
1:34:29Kita udah pernah bahas component.
1:34:31Kita pernah bahas, cuman gak detail
1:34:33banget ke lead-nya.
1:34:35Cuma base, base sekilas aja
1:34:37contoh-contohnya.
1:34:39Ada yang sudah...
1:34:41Object-object gitu loh.
1:34:43Ini lupa diparsing
1:34:47ini ya.
1:34:49Yang sering-seringify ini.
1:34:51Kita nih login
1:34:53apa sih, aplikasi e-banking.
1:34:55Saldo Anda, NAN.
1:34:57Object-object, NAN.
1:34:59Saldo Anda, NAN Rupiah.
1:35:01Oke-oke.
1:35:03Ya, sudahlah. Daripada kita
1:35:05nontonin terus, gak ada habisnya.
1:35:07Jadi udah lewat 1 jam
1:35:0935 menit. Rekor ya.
1:35:11Kita berapa sih paling lama? Lumayan ya.
1:35:13Masih rame aja
1:35:15lagi malam-malam begini.
1:35:17Udah ditungguin soalnya,
1:35:19udah ditungguin.
1:35:21Kita lanjut lagi minggu depan.
1:35:23Terima kasih buat teman-teman
1:35:25yang sudah hadir dari awal sampai akhir.
1:35:27Diskusinya luar biasa seru.
1:35:29Mudah-mudahan yang
1:35:31diskusi malam ini bermanfaat
1:35:33bisa buat bahan-bahan belajar
1:35:35ke depannya dan berguna untuk
1:35:37pekerjaan atau kegiatan sehari-hari.
1:35:39Kita pamit. Selamat malam.
1:35:41Selamat istirahat. Sampai jumpa
1:35:43minggu depan.
1:35:45Bye.
Suka episode ini?
Langganan untuk update episode terbaru setiap Selasa malam!
Episode Terkait
8 Okt 2024
Ngobrolin Deno - Ngobrolin WEB
Yuk mari kita diskusi dan ngobrol ngalor-ngidul tentang dunia web. Agar tetap up-to-date dengan teknologi web terkini. ...
4 Feb 2025
Ngobrolin Video Player - Ngobrolin WEB
Yuk mari kita diskusi dan ngobrol ngalor-ngidul tentang dunia web. Agar tetap up-to-date dengan teknologi web terkini. ...
11 Feb 2025
Optimasi Performa JS - Ngborlin WEB
Yuk mari kita diskusi dan ngobrol ngalor-ngidul tentang dunia web. Agar tetap up-to-date dengan teknologi web terkini. ...