40 Pertanyaan dan Jawaban Wawancara TypeScript Teratas untuk 2026
Panduan ini membantu Anda mempersiapkan wawancara TypeScript dengan pertanyaan penting, jawaban yang jelas, contoh dunia nyata, dan kiat ahli untuk sukses.
TypeScript telah berkembang dari sebuah superset JavaScript yang khusus menjadi bahasa inti untuk pengembangan web modern.
Dari pengalaman saya mengerjakan aplikasi web, saya melihat langsung bagaimana pengetikan yang kuat dan kemudahan pemeliharaan dapat secara signifikan mengurangi bug dan meningkatkan kolaborasi lintas tim.
TypeScript menyediakan semua itu, itulah sebabnya bahasa ini menjadi standar industri untuk pengembangan modern.
Dari Microsoft (penciptanya) hingga Google, Airbnb, dan Netflix, banyak organisasi mengandalkan TypeScript untuk menjalankan produk yang ditulis dengan kerangka kerja seperti React, Angular, dan Node.js.
Dalam pekerjaan saya, saya sering melihat lowongan pekerjaan yang mencantumkan kemahiran TypeScript sebagai persyaratan inti, bukan sekadar keterampilan opsional.
Setelah menggunakan TypeScript sendiri, dapat dikatakan bahwa memahami tipe, interface, dan fitur lanjutannya sangat penting bagi setiap pengembang yang mempersiapkan diri untuk wawancara teknis.
Pertanyaan Wawancara TypeScript Dasar
Mari kita lihat beberapa pertanyaan wawancara TypeScript yang umum dan bagaimana kaitannya dengan keamanan serta kejelasan kode.
1. Mengapa menggunakan TypeScript dibandingkan JavaScript?
TypeScript menambahkan pengetikan statis dan pemeriksaan kesalahan saat kompilasi, yang membantu pengembang mendeteksi bug lebih awal dan membuat basis kode lebih dapat diprediksi.
Ini memastikan kode lebih mudah dipelihara dan diskalakan.
2. Masalah apa yang diselesaikan TypeScript?
TypeScript mengatasi kelemahan JavaScript dalam hal keamanan tipe, skalabilitas, dan keterbacaan.
Penerapan definisi tipe yang jelas mencegah bug saat runtime yang samar dan membuat refactoring lebih aman.
3. Apa manfaat utama menggunakan pengetikan statis di TypeScript?
Pengetikan statis meningkatkan keandalan kode, pelengkapan otomatis, dan produktivitas pengembang.
Ini membantu mendeteksi kesalahan tipe sejak dini dan memungkinkan IDE menyediakan dukungan alat yang lebih kaya.
4. Apa itu anotasi tipe dan mengapa bermanfaat?
Anotasi tipe memungkinkan pengembang menyatakan tipe variabel secara eksplisit.
Ini meningkatkan keterbacaan kode dan mengurangi kesalahan saat runtime.
Berikut contohnya:
let username:string="DataCamper";let age:number=25;let isAdmin:boolean=true;Didukung oleh
Pada kode di atas, kompiler memastikan hanya tipe yang benar yang dapat diberikan ke setiap variabel.
Misalnya, jika Anda mencoba menetapkan string ke age, TypeScript akan menampilkan error, yang membantu menangkap kesalahan lebih awal.
Pengetikan eksplisit sangat penting untuk parameter fungsi, tipe pengembalian, dan kontrak API, karena menyampaikan ekspektasi kepada pengembang lain.
5. Apa itu inferensi tipe di TypeScript?
TypeScript dapat secara otomatis menginferensikan tipe berdasarkan nilai yang diberikan.
Artinya, Anda tidak selalu perlu menyatakan tipe secara eksplisit. TypeScript yang menentukannya untuk Anda.
Berikut contohnya:
let count =10;// inferred as number
count ="hello";// Error: Type 'string' is not assignable to type 'number'Didukung oleh
Dalam contoh ini, TypeScript menyimpulkan bahwa count harus berupa number berdasarkan nilai awalnya, sehingga menetapkan string kemudian akan menyebabkan error saat kompilasi.
Praktik terbaik untuk inferensi tipe meliputi:
Gunakan tipe eksplisit untuk fungsi, kelas, dan interface yang diekspor guna menyediakan kontrak yang jelas.
Biarkan inferensi untuk variabel lokal ketika tipenya sudah jelas.
Hindari menggunakan any kecuali benar-benar diperlukan, karena itu melewati fitur keamanan TypeScript.
6. Bagaimana TypeScript menangani array, tuple, dan enum?
TypeScript memungkinkan pengembang menerapkan tipe ketat pada array, tuple, dan enum untuk meningkatkan kejelasan dan mencegah kesalahan saat runtime.
Berikut contoh array bertipe:
let scores:number[]=[95,80,85];
scores.push(100);// OK
scores.push("A+");// ErrorDidukung oleh
Array bertipe memastikan semua elemen dalam array mengikuti tipe yang sama.
Tuple mendefinisikan array dengan panjang tetap dan tipe tertentu untuk setiap posisinya.
Ini berguna untuk data terstruktur di mana urutan dan tipe elemen penting.
Berikut contoh enum:
enum Status {
Active,
Inactive,
Pending,}let currentStatus: Status = Status.Active;Didukung oleh
Enum menyediakan konstanta bernama, meningkatkan keterbacaan dan mengurangi nilai yang tidak valid.
Enum sangat berguna untuk kode status, peran, dan opsi konfigurasi.
7. Apa perbedaan antara tipe any, unknown, dan never?
Tabel berikut menyoroti perbedaan utama antara tipe any, unknown, dan never di TypeScript.
Tipe
Deskripsi
any
Menonaktifkan pemeriksaan tipe sepenuhnya, mengizinkan nilai apa pun.
unknown
Alternatif yang lebih aman daripada any; Anda harus memeriksa tipenya sebelum menggunakannya.
never
Mewakili nilai yang tidak pernah terjadi (misalnya, fungsi yang selalu melempar error).
Berikut contohnya:
functionfail():never{thrownewError("Something went wrong");}Didukung oleh
Saran: lebih baik memilih unknown daripada any untuk menjaga keamanan tipe sekaligus tetap fleksibel.
8. Apa perbedaan antara null dan undefined di TypeScript?
Perbedaan utama antara null dan undefined adalah:
undefined berarti sebuah variabel telah dideklarasikan tetapi belum diberi nilai.
null adalah nilai eksplisit yang berarti tidak ada nilai.
Mode strictNullChecks TypeScript memperlakukan keduanya sebagai tipe yang terpisah, yang mencegah bug terkait null secara tidak sengaja.
Berikut contohnya:
let a:string|null=null;let b:string|undefined=undefined;Didukung oleh
9. Apa yang dilakukan opsi kompiler strict?
Flag strict mengaktifkan semua aturan pemeriksaan tipe ketat TypeScript, seperti:
strictNullChecks: Mencegah nilai null dan undefined diberikan ke variabel kecuali secara eksplisit diizinkan, membantu menghindari error referensi null saat runtime.
noImplicitAny: Mengharuskan semua variabel memiliki tipe eksplisit atau terinferensi, mencegah TypeScript menggunakan default any.
strictFunctionTypes: Menerapkan aturan yang lebih ketat untuk kompatibilitas tipe fungsi, menangkap ketidaksesuaian pada parameter dan tipe pengembalian fungsi.
strictBindCallApply: Memastikan metode bind, call, dan apply digunakan dengan tipe argumen yang benar untuk fungsi.
Ini memastikan kode lebih aman, lebih dapat diprediksi, dan menangkap bug halus sejak dini.
Pertanyaan Wawancara Sistem Tipe TypeScript
Mari kita lihat beberapa konsep sistem tipe TypeScript kunci yang umum dibahas dalam wawancara teknis.
10. Apa perbedaan antara interface dan type alias di TypeScript?
Baik interface maupun type alias menggambarkan bentuk objek, tetapi keduanya memiliki tujuan yang sedikit berbeda.
Interface dapat diperluas menggunakan extends, sehingga ideal untuk model objek hierarkis.
Type alias dapat merepresentasikan union, intersection, primitif, dan tipe komposit yang lebih kompleks.
Berikut contohnya:
interfacePerson{
name:string;
age:number;}typeEmployee={
name:string;
department:string;};Didukung oleh
Gunakan interface saat mendefinisikan bentuk objek atau kontrak kelas.
Gunakan type alias saat Anda memerlukan tipe yang fleksibel dan dapat dikomposisikan seperti union atau intersection.
11. Apa itu tipe union dan intersection di TypeScript?
Tipe union memungkinkan sebuah variabel memiliki beberapa kemungkinan tipe, sementara tipe intersection menggabungkan beberapa tipe menjadi satu.
Berikut contoh union:
let id:string|number;
id = ‘abc’;// OK
id =123;// OKDidukung oleh
Berikut contoh intersection:
typeAdmin={ name:string};typePermissions={ canEdit:boolean};typeAdminUser= Admin & Permissions;Didukung oleh
Tipe union sering digunakan pada parameter fungsi.
Tipe intersection umum dalam komposisi objek yang kompleks.
12. Apa itu type narrowing, dan bagaimana type guard bekerja?
Type narrowing memungkinkan TypeScript menyimpulkan tipe yang lebih spesifik berdasarkan alur kontrol.
Berikut contohnya:
functionprintId(id:string|number){if(typeof id ==="string"){console.log(id.toUpperCase());}else{console.log(id.toFixed());}}Didukung oleh
Type guard memastikan operasi runtime yang aman dengan memverifikasi tipe sebelum melakukan tindakan tertentu.
Anda dapat menggunakan:
typeof: untuk primitif
instanceof: untuk kelas
Custom type guards: menggunakan sintaks param is Type
Type guard meningkatkan keamanan tipe dan mengurangi kesalahan saat runtime.
13. Apa itu literal types dan discriminated unions di TypeScript?
Literal types membatasi variabel pada sekumpulan nilai yang telah ditentukan.
Berikut contohnya:
let direction:"up"|"down"|"left"|"right";Didukung oleh
Discriminated unions menggabungkan literal types dengan varian objek untuk pencocokan pola.
Discriminated unions memungkinkan percabangan yang aman pada tipe objek dan menyederhanakan logika dalam aplikasi kompleks.
14. Apa itu keyof, typeof, dan in di TypeScript?
Operator ini menyediakan refleksi tingkat tipe yang kuat.
Keyof: mengambil nama properti dari sebuah tipe
typeof: mengambil tipe dari sebuah nilai
in: digunakan dalam mapped types
Berikut contohnya:
typeKeys=keyof User;// "name" | "age"const person ={ name:"Alice", age:25};typePersonType=typeof person;// { name: string; age: number }Didukung oleh
15. Apa itu index signatures di TypeScript?
Index signatures memungkinkan objek dengan kunci dinamis.
Berikut contohnya:
interfaceErrors{[key:string]:string;}const messages: Errors ={
email:"Invalid email",
password:"Required"};Didukung oleh
Ini digunakan untuk kamus, objek mirip map, atau pola konfigurasi dinamis.
16. Apa itu structural typing di TypeScript?
Structural typing (duck typing) berarti tipe dinyatakan kompatibel berdasarkan strukturnya, bukan namanya.
Berikut contohnya:
interfacePoint{ x:number; y:number;}let p ={ x:10, y:20, z:30};let q: Point = p;// OK karena cocok secara strukturalDidukung oleh
Ini membuat TypeScript fleksibel dan bekerja baik dengan pola JavaScript.
17. Apa itu declaration merging di TypeScript?
Declaration merging terjadi ketika TypeScript menggabungkan beberapa deklarasi dengan nama yang sama.
Berikut contoh penggabungan dua interface:
interfaceUser{ name:string;}interfaceUser{ age:number;}const u: User ={ name:"Rob", age:30};// mergedDidukung oleh
Ini berguna saat memperluas tipe pihak ketiga atau menambah fungsionalitas pustaka.
Pertanyaan Wawancara TypeScript Lanjutan
Berikut pertanyaan dan jawaban TypeScript tingkat lanjut.
18. Apa itu generics di TypeScript, dan mengapa bermanfaat?
Generics memungkinkan Anda menulis fungsi dan kelas yang dapat digunakan kembali, aman terhadap tipe, dan bekerja dengan berbagai tipe data.
Berikut contoh fungsi generic:
functionidentity<T>(value:T):T{return value;}let output =identity<string>("DataCamp");let outputNumber =identity<number>(42);Didukung oleh
Berikut contoh kelas generic:
classBox<T>{
content:T;constructor(content:T){this.content = content;}getContent():T{returnthis.content;}}let stringBox =newBox("Hello");let numberBox =newBox(123);Didukung oleh
Praktik terbaik meliputi:
Gunakan nama deskriptif seperti <T>, <K, V>, atau nama khusus domain.
Hindari kompleksitas yang tidak perlu.
Gunakan batasan (extends) untuk membatasi tipe yang dapat diterima.
Generics meningkatkan ketergunaan ulang kode dengan mengurangi duplikasi dan menerapkan konsistensi tipe.
19. Apa itu utility types di TypeScript, dan bagaimana cara menggunakannya?
TypeScript menyediakan utility types bawaan untuk memanipulasi dan mentransformasikan tipe yang ada secara efisien.
Berikut contohnya:
interfaceTodo{
title:string;
description:string;
completed:boolean;}typePartialTodo= Partial<Todo>;// semua properti opsionaltypeRequiredTodo= Required<Todo>;// semua properti wajibtypeTodoPreview= Pick<Todo,"title"|"completed">;// pilih properti tertentutypeTodoWithoutDescription= Omit<Todo,"description">;// kecualikan propertiDidukung oleh
Ini sangat berguna saat bekerja dengan respons API, formulir, atau props komponen.
Saran: manfaatkan utility types bila memungkinkan untuk menyederhanakan kode dan menerapkan konsistensi tipe.
20. Apa itu conditional dan mapped types di TypeScript?
Conditional types memungkinkan Anda mendefinisikan logika di dalam tipe berdasarkan hubungan di antaranya.
Berikut contohnya:
typeIsString<T>=Textendsstring?"yes":"no";typeResult1= IsString<string>;// "yes"typeResult2= IsString<number>;// "no"Didukung oleh
Mapped types memungkinkan Anda mentransformasikan semua properti dari sebuah tipe sekaligus.
Berikut contohnya:
typeReadonlyTodo={readonly[Kinkeyof Todo]: Todo[K];};typeOptionalTodo={[Kinkeyof Todo]?: Todo[K];};Didukung oleh
Perbedaan kuncinya adalah:
keyof mengekstrak nama properti dari sebuah tipe.
typeof mengambil tipe dari variabel atau objek. Menggabungkannya memungkinkan manipulasi tipe dinamis dan refactoring yang lebih aman.
21. Apa kegunaan keyword infer di TypeScript?
infer memungkinkan Anda mengekstrak (menginferensikan) sebuah tipe di dalam conditional type.
Berikut contohnya:
typeReturnType<T>=Textends(...args:any[])=>inferR?R:never;typeR= ReturnType<()=>number>;// numberDidukung oleh
Sering digunakan dalam utilitas tingkat lanjut dan transformasi tipe generic.
22. Apa itu template literal types?
Template literal types membentuk tipe string menggunakan interpolasi.
Berikut contohnya:
typeEvent= ${string}Changed;let e: Event ="nameChanged";// OKDidukung oleh
Ini berguna untuk:
Penamaan event
Pola kelas CSS
Pola rute API
23. Apa itu satisfies dan as const dalam TypeScript?
satisfies memastikan sebuah nilai memenuhi sebuah tipe namun tetap mempertahankan tipe literalnya sendiri.
Contoh:
const config ={
mode:"dark",
version:1} satisfies { mode:string; version:number};Didukung oleh
as const membuat semua properti hanya-baca dan literal.
Contoh:
const directions =["up","down"]asconst;// type is readonly ["up", "down"]Didukung oleh
Baik satisfies maupun as const berguna dalam React, objek konfigurasi, dan discriminated unions.
Pertanyaan Wawancara TypeScript tentang Fungsi dan Objek
Pada bagian ini, kita akan membahas pertanyaan wawancara TypeScript terkait fungsi dan objek.
24. Bagaimana cara kerja function overloading di TypeScript?
Function overloading memungkinkan Anda mendefinisikan beberapa tanda tangan fungsi untuk tipe atau pola argumen yang berbeda.
Berikut contohnya:
functionadd(a:number, b:number):number;functionadd(a:string, b:string):string;functionadd(a:any, b:any):any{return a + b;}let sumNumbers =add(5,10);// 15let sumStrings =add("Hello, ","World");// "Hello, World"Didukung oleh
Praktik terbaik meliputi:
Deklarasikan semua overload yang mungkin sebelum implementasi.
Gunakan type guard untuk menangani banyak tipe dengan aman.
25. Apa itu parameter opsional dan rest di TypeScript?
Parameter opsional dan rest membuat fungsi lebih fleksibel dan ekspresif.
Berikut contohnya:
functiongreet(name:string, age?:number){console.log(Hello ${name}, age: ${age ??"unknown"});}functionsum(...numbers:number[]){return numbers.reduce((a, b)=> a + b,0);}Didukung oleh
Aturan kunci untuk menggunakan parameter opsional dan rest adalah:
Gunakan ? untuk parameter opsional.
Gunakan ... untuk parameter rest (argumen variadik).
Ini sering diuji dalam wawancara untuk menilai seberapa baik Anda menangani input fungsi yang dinamis.
26. Apa perbedaan antara readonly dan const di TypeScript?
const berlaku untuk variabel, sedangkan readonly berlaku untuk properti objek.
Berikut contohnya:
interfaceUser{readonly id:number;
name:string;}const user: User ={ id:1, name:"Bob"};// user.id = 2; // Error: Cannot assign to 'id'const{ id, name }= user;console.log(User ${name} has ID ${id});Didukung oleh
Beberapa praktik terbaik untuk menggunakan readonly dan const adalah:
Gunakan readonly untuk objek yang tidak boleh diubah, seperti data yang dikembalikan dari API.
Gunakan const untuk variabel yang tidak boleh diubah referensinya.
Gabungkan destructuring dengan anotasi tipe untuk kode yang lebih rapi dan mudah dipahami.
27. Apa itu varians tipe fungsi (covariance dan contravariance)?
Varians tipe fungsi menjelaskan bagaimana TypeScript memutuskan apakah satu tipe fungsi dapat dengan aman menggantikan yang lain, berdasarkan tipe parameter dan tipe pengembaliannya.
Tipe pengembalian: Kovarian
Sebuah fungsi boleh mengembalikan tipe yang lebih spesifik daripada yang diharapkan pemanggil. Contoh:
typeAnimal={ name:string};typeDog= Animal &{bark:()=>void};letf:()=> Animal;letg:()=>Dog=()=>({ name:"Rex",bark(){}});
f = g;// OK: Dog adalah subtipe dari AnimalDidukung oleh
Tipe parameter: Kontravarian
Sebuah fungsi boleh menerima tipe parameter yang lebih umum daripada yang diharapkan. Contoh:
typeDog={ name:string;bark:()=>void};typeAnimal={ name:string};typeHandleDog=(dog: Dog)=>void;typeHandleAnimal=(animal: Animal)=>void;let handleDog:HandleDog= d =>console.log(d.bark());let handleAnimal:HandleAnimal= a =>console.log(a.name);// Fungsi yang menerima Animal lebih umum,// sehingga dapat menggantikan yang menerima Dog
handleDog = handleAnimal;// OKDidukung oleh
28. Apa itu this types di TypeScript?
this types memungkinkan metode mengembalikan tipe yang sama dengan kelasnya, berguna untuk API yang fluent:
classBuilder{setName(name:string):this{// ...returnthis;}}newBuilder().setName("Test");// chaining berfungsiDidukung oleh
Pertanyaan Wawancara OOP di TypeScript
Pertanyaan berikut membahas konsep OOP TypeScript kunci yang sering didiskusikan dalam wawancara teknis.
29. Bagaimana TypeScript mendukung pemrograman berorientasi objek (OOP)?
TypeScript mendukung prinsip OOP seperti class, pewarisan, dan access modifier.
Class mendefinisikan cetak biru yang dapat digunakan ulang untuk objek, dan pewarisan memungkinkan satu class memperluas class lain untuk berbagi properti dan perilaku.
Berikut contohnya:
classAnimal{constructor(public name:string){}move(distance:number){console.log(${this.name} moved ${distance}m.);}}classDogextendsAnimal{bark(){console.log("Woof!");}}const dog =newDog("Buddy");
dog.bark();// Woof!
dog.move(10);// Buddy moved 10m.Didukung oleh
Access modifier meliputi:
public: dapat diakses dari mana saja
protected: dapat diakses dalam class dan subclass-nya
private: hanya dapat diakses dalam class yang mendeklarasikannya
Saran: gunakan access modifier untuk memastikan enkapsulasi, yang mencegah modifikasi yang tidak diinginkan pada logika atau status internal class.
30. Apa perbedaan antara abstract class dan interface di TypeScript?
Baik abstract class maupun interface mendefinisikan kontrak untuk objek atau class, tetapi keduanya memiliki tujuan yang berbeda.
Abstract class dapat menyertakan implementasi bersama dan metode abstrak.
Interface hanya mendeskripsikan struktur, bukan implementasi.
Berikut contohnya:
abstractclassShape{abstractgetArea():number;// harus diimplementasikan}classCircleextendsShape{constructor(public radius:number){super();}getArea():number{return Math.PI*this.radius **2;}}Didukung oleh
Praktik terbaik meliputi:
Gunakan abstract class saat Anda memerlukan logika bersama di antara class terkait.
Gunakan interface untuk kontrak tipe yang fleksibel dan desain kode yang terlepas (decoupled).
31. Apa perbedaan antara modifier private, protected, dan public?
Berikut perbandingan access modifier TypeScript dan apa yang mereka kendalikan:
Modifier
Deskripsi
public
Dapat diakses dari mana saja.
protected
Dapat diakses dalam class dan subclass-nya.
private
Hanya dapat diakses di dalam class yang mendeklarasikannya.
Menggunakan access modifier yang tepat mendorong enkapsulasi, yang memastikan bahwa status dan logika internal tidak dapat diakses atau diubah secara tak terduga.
32. Apa perbedaan antara implements dan extends?
extends mewarisi perilaku dan properti, sedangkan implements menegakkan kontrak tetapi tidak menyediakan implementasi
Berikut contohnya:
interfaceLogger{log(msg:string):void;}classBase{foo(){}}classMyClassextendsBaseimplementsLogger{log(msg:string){}}Didukung oleh
33. Bagaimana cara kerja mixin di TypeScript?
Mixin memungkinkan beberapa komponen class yang dapat digunakan ulang.
Berikut contohnya:
typeConstructor<T={}>=new(...args:any[])=>T;functionTimestamped<TBase extends Constructor>(Base: TBase){returnclassextends Base {
timestamp = Date.now();};}classUser{}const TimestampedUser =Timestamped(User);Didukung oleh
Berguna saat Anda membutuhkan pola pewarisan ganda.
Pertanyaan Wawancara TypeScript Praktis
Pertanyaan ini berfokus pada penerapan TypeScript di dunia nyata yang sering muncul dalam wawancara.
34. Bagaimana Anda akan memigrasikan proyek JavaScript ke TypeScript?
Migrasi basis kode JavaScript lama ke TypeScript sebaiknya dilakukan secara bertahap untuk meminimalkan risiko dan gangguan.
Pendekatan yang direkomendasikan adalah:
Ubah nama file .js menjadi .ts.
Aktifkan allowJs dan checkJs di tsconfig.json.
Secara bertahap tambahkan tipe, mulai dari fungsi atau modul inti.
Gunakan any sementara waktu, lalu gantikan dengan tipe yang tepat seiring penyempurnaan basis kode.
Contoh tsconfig.json untuk migrasi bertahap:
{"compilerOptions":{"allowJs":true,"checkJs":true,"strict":true}}Didukung oleh
Migrasi bertahap memastikan stabilitas dan memungkinkan tim mendapatkan manfaat pemeriksaan tipe sejak dini tanpa penulisan ulang besar-besaran.
35. Bagaimana cara menggunakan TypeScript dengan React?
Menggunakan TypeScript di React meningkatkan keamanan tipe untuk props dan state, yang membantu mencegah kesalahan saat runtime.
Berikut contohnya:
interfaceProps{
title:string;}const Header: React.FC<Props>=({ title })=><h1>{title}</h1>;Didukung oleh
Mendefinisikan tipe prop membantu TypeScript menangkap props yang hilang atau salah ketik saat kompilasi, yang meningkatkan keandalan dan produktivitas pengembang.
36. Bagaimana cara menggunakan TypeScript dengan Node.js?
TypeScript meningkatkan aplikasi Node.js dengan menambahkan keamanan tipe untuk rute API, konfigurasi, dan middleware.
Memberi tipe pada Request dan Response memastikan penggunaan parameter yang benar dan mencegah kesalahan umum saat runtime.
TypeScript membuat API Node.js lebih mudah dipelihara dan di-refactor dengan aman.
37. Bagaimana Anda menangani pustaka JavaScript pihak ketiga yang tidak memiliki definisi TypeScript?
Beberapa pustaka tidak menyertakan tipe bawaan. Dalam kasus ini, Anda memiliki dua opsi utama:
Opsi 1: Instal tipe yang dikelola komunitas
npm install --save-dev @types/library-nameDidukung oleh
Opsi 2: Buat file deklarasi khusus
// custom.d.tsdeclaremodule"legacy-library"{exportfunctioninit():void;}Didukung oleh
Tips meliputi:
Selalu periksa @types sebelum menulis deklarasi khusus.
Tambahkan tipe secara bertahap untuk pustaka kompleks guna memastikan kompatibilitas.
Pemberian tipe yang tepat pada pustaka pihak ketiga meningkatkan kepercayaan dan mengurangi bug saat runtime.
Pertanyaan Wawancara Konfigurasi dan Perkakas TypeScript
Bagian ini membahas topik penting seputar konfigurasi dan perkakas TypeScript yang sering dibahas dalam wawancara teknis.
38. Apa itu tsconfig.json, dan mengapa penting?
Berkas tsconfig.json adalah konfigurasi pusat untuk setiap proyek TypeScript.
Berkas ini menentukan perilaku kompiler, menyertakan berkas, dan mengaktifkan fitur.
Berikut contohnya:
{"compilerOptions":{"target":"ES2020","module":"commonjs","strict":true,"outDir":"./dist","esModuleInterop":true,"forceConsistentCasingInFileNames":true,"noImplicitReturns":true,"noFallthroughCasesInSwitch":true},"include":["src"],"exclude":["node_modules","dist"]}Didukung oleh
Pengaturan kunci meliputi:
target: versi JavaScript untuk output
module: sistem modul (CommonJS, ESNext, dll.)
strict: mengaktifkan semua opsi pemeriksaan tipe ketat
outDir: folder output untuk kode terkompilasi
esModuleInterop: memungkinkan impor modul CommonJS
Pastikan Anda mengaktifkan mode strict untuk menangkap potensi bug sejak dini dan meningkatkan kemudahan pemeliharaan.
39. Bagaimana Anda mengonfigurasi TypeScript dengan alat build seperti Webpack, Vite, atau Babel?
TypeScript terintegrasi mulus dengan sistem build modern.
Penyiapan umum meliputi:
Webpack: ts-loader untuk kompilasi langsung
Vite: vite-plugin-ts untuk build yang cepat
Babel: @babel/preset-typescript untuk lingkungan yang banyak JavaScript
Selaraskan pengaturan kompiler dan bundler, aktifkan build inkremental, dan gunakan source map untuk debugging yang lebih mudah.
40. Bagaimana Anda mengonfigurasi ESLint dengan TypeScript untuk kualitas kode yang lebih baik?
ESLint membantu menjaga standar penulisan kode yang konsisten dan menangkap kesalahan sejak dini.
Instal paket yang diperlukan:
npm install eslint @typescript-eslint/parser @typescript-eslint/eslint-plugin --save-devDidukung oleh
Contoh konfigurasi ESLint:
{"parser":"@typescript-eslint/parser","plugins":["@typescript-eslint"],"extends":["eslint:recommended","plugin:@typescript-eslint/recommended"],"rules":{"@typescript-eslint/no-explicit-any":"warn","@typescript-eslint/explicit-function-return-type":"off"}}Didukung oleh
Tips meliputi:
Hindari menonaktifkan aturan secara global.
Sesuaikan aturan per proyek untuk menyeimbangkan keamanan tipe dan fleksibilitas.
Gunakan ESLint bersama Prettier untuk basis kode yang konsisten dan rapi.
Tips Sukses dalam Wawancara TypeScript Anda
Sebelum wawancara, Anda sebaiknya fokus menguasai keterampilan teknis dan keterampilan komunikasi Anda.
Berikut beberapa cara untuk melakukannya:
Pendekatan belajar:
Tinjau dokumentasi resmi tentang tipe tingkat lanjut, generics, dan utility types.
Fokus pada kasus penggunaan nyata alih-alih menghafal.
Latih membaca dan memahami error tipe, karena pesan kompiler TypeScript sering menjadi bagian dari penilaian teknis.
Proyek latihan:
Bangun aplikasi kecil namun lengkap untuk menunjukkan keterampilan praktis:
Daftar To-Do React dengan props dan state yang diketik.
Express REST API dengan objek request dan response yang diketik.
Pustaka utilitas menggunakan generics dan mapped types.
Jebakan umum:
Terlalu sering menggunakan any, yang merusak keamanan tipe TypeScript.
Mengabaikan mode strict, yang mengarah pada bug saat runtime.
Membingungkan null dan undefined dalam definisi tipe.
Lupa memasang atau mengonfigurasi definisi tipe untuk pustaka pihak ketiga.
Tips komunikasi:
Selama wawancara, jelaskan dengan jelas alasan Anda dalam mengambil keputusan tipe.
Uraikan trade-off antar pendekatan (misalnya: interface vs type alias atau abstract class vs interface).
Tunjukkan bagaimana TypeScript meningkatkan kemudahan pemeliharaan dan skalabilitas dalam proyek.
Kesimpulan
TypeScript terus mendominasi pengembangan web modern karena menerapkan tipe data yang jelas dan konsisten yang membantu mencegah bug dan meningkatkan skalabilitas untuk proyek besar.
Untuk terus belajar, jelajahi katalog lengkap kursus kami untuk terus memperluas pengetahuan Anda di berbagai teknologi.
Saya Don—seorang Konsultan, Pengembang, Insinyur, Arsitek Digital, dan Penulis (singkatnya, saya mengenakan banyak topi 👨💻🎩). Saya senang menjaga platform digital tetap berjalan mulus dan selalu mencari cara untuk meningkatkannya. Saat tidak menulis kode, saya menulis tentang kecerdasan buatan, ilmu data, dan segala hal terkait teknologi.
\n
\n
Selama bertahun-tahun, saya telah mengerjakan berbagai hal mulai dari membangun dan mengoptimalkan perangkat lunak hingga menerapkan model AI dan merancang solusi cloud. Saya meraih gelar Master of Science di bidang Kecerdasan Buatan dan Bachelor of Science di bidang Ilmu Komputer, keduanya dari Brunel University London.
FAQ
Untuk apa TypeScript digunakan?⌄
TypeScript adalah superset JavaScript yang bertipe dan dikompilasi menjadi JavaScript murni. TypeScript digunakan untuk membangun aplikasi yang dapat diskalakan dan mudah dipelihara dengan pemeriksaan tipe statis.
Mengapa TypeScript penting bagi pengembang pada 2026?⌄
Seiring kerangka kerja seperti React, Angular, dan Node.js menstandarkan penggunaan TypeScript, keterampilan ini kini menjadi kunci yang diuji dalam sebagian besar wawancara front-end dan full-stack.
Bagaimana saya bisa berlatih TypeScript sebelum wawancara?⌄
Bangun proyek kecil (seperti aplikasi To-Do React atau API Node.js) untuk memperkuat pemahaman Anda dan mempersiapkan tugas praktik saat wawancara.
Kesalahan umum TypeScript apa yang harus dihindari saat wawancara?⌄
Terlalu sering menggunakan ‘any’, mengabaikan peringatan kompiler, melewatkan mode strict, dan gagal menjelaskan pilihan tipe Anda adalah beberapa kesalahan umum.
Kuasai pertanyaan wawancara basis data, dari konsep SQL dasar hingga skenario desain sistem tingkat lanjut. Panduan mendalam ini mencakup semua yang Anda perlukan untuk sukses di wawancara DBMS dan meraih peran berikutnya.
Temukan alasan mengapa Anda sebaiknya (tidak) menggunakan spaghetti plot untuk menyampaikan ketidakpastian jalur prediksi badai serta dampaknya terhadap interpretasi.
TypeScript telah berkembang dari sebuah superset JavaScript yang khusus menjadi bahasa inti untuk pengembangan web modern.
Dari pengalaman saya mengerjakan aplikasi web, saya melihat langsung bagaimana pengetikan yang kuat dan kemudahan pemeliharaan dapat secara signifikan mengurangi bug dan meningkatkan kolaborasi lintas tim.
TypeScript menyediakan semua itu, itulah sebabnya bahasa ini menjadi standar industri untuk pengembangan modern.
Dari Microsoft (penciptanya) hingga Google, Airbnb, dan Netflix, banyak organisasi mengandalkan TypeScript untuk menjalankan produk yang ditulis dengan kerangka kerja seperti React, Angular, dan Node.js.
Dalam pekerjaan saya, saya sering melihat lowongan pekerjaan yang mencantumkan kemahiran TypeScript sebagai persyaratan inti, bukan sekadar keterampilan opsional.
Setelah menggunakan TypeScript sendiri, dapat dikatakan bahwa memahami tipe, interface, dan fitur lanjutannya sangat penting bagi setiap pengembang yang mempersiapkan diri untuk wawancara teknis.
Pertanyaan Wawancara TypeScript Dasar
Mari kita lihat beberapa pertanyaan wawancara TypeScript yang umum dan bagaimana kaitannya dengan keamanan serta kejelasan kode.
1. Mengapa menggunakan TypeScript dibandingkan JavaScript?
TypeScript menambahkan pengetikan statis dan pemeriksaan kesalahan saat kompilasi, yang membantu pengembang mendeteksi bug lebih awal dan membuat basis kode lebih dapat diprediksi.
Ini memastikan kode lebih mudah dipelihara dan diskalakan.
2. Masalah apa yang diselesaikan TypeScript?
TypeScript mengatasi kelemahan JavaScript dalam hal keamanan tipe, skalabilitas, dan keterbacaan.
Penerapan definisi tipe yang jelas mencegah bug saat runtime yang samar dan membuat refactoring lebih aman.
3. Apa manfaat utama menggunakan pengetikan statis di TypeScript?
Pengetikan statis meningkatkan keandalan kode, pelengkapan otomatis, dan produktivitas pengembang.
Ini membantu mendeteksi kesalahan tipe sejak dini dan memungkinkan IDE menyediakan dukungan alat yang lebih kaya.
4. Apa itu anotasi tipe dan mengapa bermanfaat?
Anotasi tipe memungkinkan pengembang menyatakan tipe variabel secara eksplisit.
Ini meningkatkan keterbacaan kode dan mengurangi kesalahan saat runtime.
Berikut contohnya:
Pada kode di atas, kompiler memastikan hanya tipe yang benar yang dapat diberikan ke setiap variabel.
Misalnya, jika Anda mencoba menetapkan string ke age, TypeScript akan menampilkan error, yang membantu menangkap kesalahan lebih awal.
Pengetikan eksplisit sangat penting untuk parameter fungsi, tipe pengembalian, dan kontrak API, karena menyampaikan ekspektasi kepada pengembang lain.
5. Apa itu inferensi tipe di TypeScript?
TypeScript dapat secara otomatis menginferensikan tipe berdasarkan nilai yang diberikan.
Artinya, Anda tidak selalu perlu menyatakan tipe secara eksplisit. TypeScript yang menentukannya untuk Anda.
Berikut contohnya:
Dalam contoh ini, TypeScript menyimpulkan bahwa count harus berupa number berdasarkan nilai awalnya, sehingga menetapkan string kemudian akan menyebabkan error saat kompilasi.
Praktik terbaik untuk inferensi tipe meliputi:
6. Bagaimana TypeScript menangani array, tuple, dan enum?
TypeScript memungkinkan pengembang menerapkan tipe ketat pada array, tuple, dan enum untuk meningkatkan kejelasan dan mencegah kesalahan saat runtime.
Berikut contoh array bertipe:
Array bertipe memastikan semua elemen dalam array mengikuti tipe yang sama.
Berikut contoh tuple:
Tuple mendefinisikan array dengan panjang tetap dan tipe tertentu untuk setiap posisinya.
Ini berguna untuk data terstruktur di mana urutan dan tipe elemen penting.
Berikut contoh enum:
Enum menyediakan konstanta bernama, meningkatkan keterbacaan dan mengurangi nilai yang tidak valid.
Enum sangat berguna untuk kode status, peran, dan opsi konfigurasi.
7. Apa perbedaan antara tipe any, unknown, dan never?
Tabel berikut menyoroti perbedaan utama antara tipe any, unknown, dan never di TypeScript.
Tipe
Deskripsi
any
Menonaktifkan pemeriksaan tipe sepenuhnya, mengizinkan nilai apa pun.
unknown
Alternatif yang lebih aman daripada any; Anda harus memeriksa tipenya sebelum menggunakannya.
never
Mewakili nilai yang tidak pernah terjadi (misalnya, fungsi yang selalu melempar error).
Berikut contohnya:
Saran: lebih baik memilih unknown daripada any untuk menjaga keamanan tipe sekaligus tetap fleksibel.
8. Apa perbedaan antara null dan undefined di TypeScript?
Perbedaan utama antara null dan undefined adalah:
undefinedberarti sebuah variabel telah dideklarasikan tetapi belum diberi nilai.nulladalah nilai eksplisit yang berarti tidak ada nilai.Mode strictNullChecks TypeScript memperlakukan keduanya sebagai tipe yang terpisah, yang mencegah bug terkait null secara tidak sengaja.
Berikut contohnya:
9. Apa yang dilakukan opsi kompiler strict?
Flag
strictmengaktifkan semua aturan pemeriksaan tipe ketat TypeScript, seperti:nulldanundefineddiberikan ke variabel kecuali secara eksplisit diizinkan, membantu menghindari error referensi null saat runtime.noImplicitAny: Mengharuskan semua variabel memiliki tipe eksplisit atau terinferensi, mencegah TypeScript menggunakan default
any.strictFunctionTypes: Menerapkan aturan yang lebih ketat untuk kompatibilitas tipe fungsi, menangkap ketidaksesuaian pada parameter dan tipe pengembalian fungsi.
strictBindCallApply: Memastikan metode
bind,call, danapplydigunakan dengan tipe argumen yang benar untuk fungsi.Ini memastikan kode lebih aman, lebih dapat diprediksi, dan menangkap bug halus sejak dini.
Pertanyaan Wawancara Sistem Tipe TypeScript
Mari kita lihat beberapa konsep sistem tipe TypeScript kunci yang umum dibahas dalam wawancara teknis.
10. Apa perbedaan antara interface dan type alias di TypeScript?
Baik interface maupun type alias menggambarkan bentuk objek, tetapi keduanya memiliki tujuan yang sedikit berbeda.
Interface dapat diperluas menggunakan extends, sehingga ideal untuk model objek hierarkis.
Type alias dapat merepresentasikan union, intersection, primitif, dan tipe komposit yang lebih kompleks.
Berikut contohnya:
Gunakan interface saat mendefinisikan bentuk objek atau kontrak kelas.
Gunakan type alias saat Anda memerlukan tipe yang fleksibel dan dapat dikomposisikan seperti union atau intersection.
11. Apa itu tipe union dan intersection di TypeScript?
Tipe union memungkinkan sebuah variabel memiliki beberapa kemungkinan tipe, sementara tipe intersection menggabungkan beberapa tipe menjadi satu.
Berikut contoh union:
Berikut contoh intersection:
Tipe union sering digunakan pada parameter fungsi.
Tipe intersection umum dalam komposisi objek yang kompleks.
12. Apa itu type narrowing, dan bagaimana type guard bekerja?
Type narrowing memungkinkan TypeScript menyimpulkan tipe yang lebih spesifik berdasarkan alur kontrol.
Berikut contohnya:
Type guard memastikan operasi runtime yang aman dengan memverifikasi tipe sebelum melakukan tindakan tertentu.
Anda dapat menggunakan:
typeof: untuk primitifinstanceof: untuk kelasCustom type guards: menggunakan sintaks param isTypeType guard meningkatkan keamanan tipe dan mengurangi kesalahan saat runtime.
13. Apa itu literal types dan discriminated unions di TypeScript?
Literal types membatasi variabel pada sekumpulan nilai yang telah ditentukan.
Berikut contohnya:
Discriminated unions menggabungkan literal types dengan varian objek untuk pencocokan pola.
Berikut contohnya:
Discriminated unions memungkinkan percabangan yang aman pada tipe objek dan menyederhanakan logika dalam aplikasi kompleks.
14. Apa itu keyof, typeof, dan in di TypeScript?
Operator ini menyediakan refleksi tingkat tipe yang kuat.
Keyof: mengambil nama properti dari sebuah tipetypeof: mengambil tipe dari sebuah nilaiin: digunakan dalam mapped typesBerikut contohnya:
15. Apa itu index signatures di TypeScript?
Index signatures memungkinkan objek dengan kunci dinamis.
Berikut contohnya:
Ini digunakan untuk kamus, objek mirip map, atau pola konfigurasi dinamis.
16. Apa itu structural typing di TypeScript?
Structural typing (duck typing) berarti tipe dinyatakan kompatibel berdasarkan strukturnya, bukan namanya.
Berikut contohnya:
Ini membuat TypeScript fleksibel dan bekerja baik dengan pola JavaScript.
17. Apa itu declaration merging di TypeScript?
Declaration merging terjadi ketika TypeScript menggabungkan beberapa deklarasi dengan nama yang sama.
Berikut contoh penggabungan dua interface:
Ini berguna saat memperluas tipe pihak ketiga atau menambah fungsionalitas pustaka.
Pertanyaan Wawancara TypeScript Lanjutan
Berikut pertanyaan dan jawaban TypeScript tingkat lanjut.
18. Apa itu generics di TypeScript, dan mengapa bermanfaat?
Generics memungkinkan Anda menulis fungsi dan kelas yang dapat digunakan kembali, aman terhadap tipe, dan bekerja dengan berbagai tipe data.
Berikut contoh fungsi generic:
Berikut contoh kelas generic:
Praktik terbaik meliputi:
Gunakan nama deskriptif seperti
<T>,<K, V>, atau nama khusus domain.Hindari kompleksitas yang tidak perlu.
Gunakan batasan (extends) untuk membatasi tipe yang dapat diterima.
Generics meningkatkan ketergunaan ulang kode dengan mengurangi duplikasi dan menerapkan konsistensi tipe.
19. Apa itu utility types di TypeScript, dan bagaimana cara menggunakannya?
TypeScript menyediakan utility types bawaan untuk memanipulasi dan mentransformasikan tipe yang ada secara efisien.
Berikut contohnya:
Ini sangat berguna saat bekerja dengan respons API, formulir, atau props komponen.
Saran: manfaatkan utility types bila memungkinkan untuk menyederhanakan kode dan menerapkan konsistensi tipe.
20. Apa itu conditional dan mapped types di TypeScript?
Conditional types memungkinkan Anda mendefinisikan logika di dalam tipe berdasarkan hubungan di antaranya.
Berikut contohnya:
Mapped types memungkinkan Anda mentransformasikan semua properti dari sebuah tipe sekaligus.
Berikut contohnya:
Perbedaan kuncinya adalah:
21. Apa kegunaan keyword infer di TypeScript?
infermemungkinkan Anda mengekstrak (menginferensikan) sebuah tipe di dalam conditional type.Berikut contohnya:
Sering digunakan dalam utilitas tingkat lanjut dan transformasi tipe generic.
22. Apa itu template literal types?
Template literal types membentuk tipe string menggunakan interpolasi.
Berikut contohnya:
Ini berguna untuk:
23. Apa itu satisfies dan as const dalam TypeScript?
satisfiesmemastikan sebuah nilai memenuhi sebuah tipe namun tetap mempertahankan tipe literalnya sendiri.Contoh:
as constmembuat semua properti hanya-baca dan literal.Contoh:
Baik
satisfiesmaupunas constberguna dalam React, objek konfigurasi, dan discriminated unions.Pertanyaan Wawancara TypeScript tentang Fungsi dan Objek
Pada bagian ini, kita akan membahas pertanyaan wawancara TypeScript terkait fungsi dan objek.
24. Bagaimana cara kerja function overloading di TypeScript?
Function overloading memungkinkan Anda mendefinisikan beberapa tanda tangan fungsi untuk tipe atau pola argumen yang berbeda.
Berikut contohnya:
Praktik terbaik meliputi:
25. Apa itu parameter opsional dan rest di TypeScript?
Parameter opsional dan rest membuat fungsi lebih fleksibel dan ekspresif.
Berikut contohnya:
Aturan kunci untuk menggunakan parameter opsional dan rest adalah:
Gunakan
?untuk parameter opsional.Gunakan
...untuk parameter rest (argumen variadik).Ini sering diuji dalam wawancara untuk menilai seberapa baik Anda menangani input fungsi yang dinamis.
26. Apa perbedaan antara readonly dan const di TypeScript?
constberlaku untuk variabel, sedangkanreadonlyberlaku untuk properti objek.Berikut contohnya:
Beberapa praktik terbaik untuk menggunakan
readonlydanconstadalah:27. Apa itu varians tipe fungsi (covariance dan contravariance)?
Varians tipe fungsi menjelaskan bagaimana TypeScript memutuskan apakah satu tipe fungsi dapat dengan aman menggantikan yang lain, berdasarkan tipe parameter dan tipe pengembaliannya.
Tipe pengembalian: Kovarian
Sebuah fungsi boleh mengembalikan tipe yang lebih spesifik daripada yang diharapkan pemanggil. Contoh:
Tipe parameter: Kontravarian
Sebuah fungsi boleh menerima tipe parameter yang lebih umum daripada yang diharapkan. Contoh:
28. Apa itu this types di TypeScript?
thistypes memungkinkan metode mengembalikan tipe yang sama dengan kelasnya, berguna untuk API yang fluent:Pertanyaan Wawancara OOP di TypeScript
Pertanyaan berikut membahas konsep OOP TypeScript kunci yang sering didiskusikan dalam wawancara teknis.
29. Bagaimana TypeScript mendukung pemrograman berorientasi objek (OOP)?
TypeScript mendukung prinsip OOP seperti class, pewarisan, dan access modifier.
Class mendefinisikan cetak biru yang dapat digunakan ulang untuk objek, dan pewarisan memungkinkan satu class memperluas class lain untuk berbagi properti dan perilaku.
Berikut contohnya:
Access modifier meliputi:
Saran: gunakan access modifier untuk memastikan enkapsulasi, yang mencegah modifikasi yang tidak diinginkan pada logika atau status internal class.
30. Apa perbedaan antara abstract class dan interface di TypeScript?
Baik abstract class maupun interface mendefinisikan kontrak untuk objek atau class, tetapi keduanya memiliki tujuan yang berbeda.
Abstract class dapat menyertakan implementasi bersama dan metode abstrak.
Interface hanya mendeskripsikan struktur, bukan implementasi.
Berikut contohnya:
Praktik terbaik meliputi:
31. Apa perbedaan antara modifier private, protected, dan public?
Berikut perbandingan access modifier TypeScript dan apa yang mereka kendalikan:
Modifier
Deskripsi
public
Dapat diakses dari mana saja.
protected
Dapat diakses dalam class dan subclass-nya.
private
Hanya dapat diakses di dalam class yang mendeklarasikannya.
Menggunakan access modifier yang tepat mendorong enkapsulasi, yang memastikan bahwa status dan logika internal tidak dapat diakses atau diubah secara tak terduga.
32. Apa perbedaan antara implements dan extends?
extendsmewarisi perilaku dan properti, sedangkanimplementsmenegakkan kontrak tetapi tidak menyediakan implementasiBerikut contohnya:
33. Bagaimana cara kerja mixin di TypeScript?
Mixin memungkinkan beberapa komponen class yang dapat digunakan ulang.
Berikut contohnya:
Berguna saat Anda membutuhkan pola pewarisan ganda.
Pertanyaan Wawancara TypeScript Praktis
Pertanyaan ini berfokus pada penerapan TypeScript di dunia nyata yang sering muncul dalam wawancara.
34. Bagaimana Anda akan memigrasikan proyek JavaScript ke TypeScript?
Migrasi basis kode JavaScript lama ke TypeScript sebaiknya dilakukan secara bertahap untuk meminimalkan risiko dan gangguan.
Pendekatan yang direkomendasikan adalah:
Ubah nama file
.jsmenjadi.ts.Aktifkan
allowJsdancheckJsdi tsconfig.json.Secara bertahap tambahkan tipe, mulai dari fungsi atau modul inti.
Gunakan any sementara waktu, lalu gantikan dengan tipe yang tepat seiring penyempurnaan basis kode.
Contoh tsconfig.json untuk migrasi bertahap:
Migrasi bertahap memastikan stabilitas dan memungkinkan tim mendapatkan manfaat pemeriksaan tipe sejak dini tanpa penulisan ulang besar-besaran.
35. Bagaimana cara menggunakan TypeScript dengan React?
Menggunakan TypeScript di React meningkatkan keamanan tipe untuk props dan state, yang membantu mencegah kesalahan saat runtime.
Berikut contohnya:
Mendefinisikan tipe prop membantu TypeScript menangkap props yang hilang atau salah ketik saat kompilasi, yang meningkatkan keandalan dan produktivitas pengembang.
36. Bagaimana cara menggunakan TypeScript dengan Node.js?
TypeScript meningkatkan aplikasi Node.js dengan menambahkan keamanan tipe untuk rute API, konfigurasi, dan middleware.
Berikut contohnya:
Memberi tipe pada
RequestdanResponsememastikan penggunaan parameter yang benar dan mencegah kesalahan umum saat runtime.TypeScript membuat API Node.js lebih mudah dipelihara dan di-refactor dengan aman.
37. Bagaimana Anda menangani pustaka JavaScript pihak ketiga yang tidak memiliki definisi TypeScript?
Beberapa pustaka tidak menyertakan tipe bawaan. Dalam kasus ini, Anda memiliki dua opsi utama:
Opsi 1: Instal tipe yang dikelola komunitas
Opsi 2: Buat file deklarasi khusus
Tips meliputi:
Selalu periksa
@typessebelum menulis deklarasi khusus.Tambahkan tipe secara bertahap untuk pustaka kompleks guna memastikan kompatibilitas.
Pemberian tipe yang tepat pada pustaka pihak ketiga meningkatkan kepercayaan dan mengurangi bug saat runtime.
Pertanyaan Wawancara Konfigurasi dan Perkakas TypeScript
Bagian ini membahas topik penting seputar konfigurasi dan perkakas TypeScript yang sering dibahas dalam wawancara teknis.
38. Apa itu tsconfig.json, dan mengapa penting?
Berkas tsconfig.json adalah konfigurasi pusat untuk setiap proyek TypeScript.
Berkas ini menentukan perilaku kompiler, menyertakan berkas, dan mengaktifkan fitur.
Berikut contohnya:
Pengaturan kunci meliputi:
target: versi JavaScript untuk outputmodule: sistem modul (CommonJS, ESNext, dll.)strict: mengaktifkan semua opsi pemeriksaan tipe ketatoutDir: folder output untuk kode terkompilasiesModuleInterop: memungkinkan impor modul CommonJSPastikan Anda mengaktifkan mode strict untuk menangkap potensi bug sejak dini dan meningkatkan kemudahan pemeliharaan.
39. Bagaimana Anda mengonfigurasi TypeScript dengan alat build seperti Webpack, Vite, atau Babel?
TypeScript terintegrasi mulus dengan sistem build modern.
Penyiapan umum meliputi:
Webpack:
ts-loaderuntuk kompilasi langsungVite:
vite-plugin-tsuntuk build yang cepatBabel:
@babel/preset-typescriptuntuk lingkungan yang banyak JavaScriptContoh konfigurasi Vite:
Selaraskan pengaturan kompiler dan bundler, aktifkan build inkremental, dan gunakan source map untuk debugging yang lebih mudah.
40. Bagaimana Anda mengonfigurasi ESLint dengan TypeScript untuk kualitas kode yang lebih baik?
ESLint membantu menjaga standar penulisan kode yang konsisten dan menangkap kesalahan sejak dini.
Instal paket yang diperlukan:
Contoh konfigurasi ESLint:
Tips meliputi:
Tips Sukses dalam Wawancara TypeScript Anda
Sebelum wawancara, Anda sebaiknya fokus menguasai keterampilan teknis dan keterampilan komunikasi Anda.
Berikut beberapa cara untuk melakukannya:
Pendekatan belajar:
Proyek latihan:
Jebakan umum:
Tips komunikasi:
Kesimpulan
TypeScript terus mendominasi pengembangan web modern karena menerapkan tipe data yang jelas dan konsisten yang membantu mencegah bug dan meningkatkan skalabilitas untuk proyek besar.
Untuk terus belajar, jelajahi katalog lengkap kursus kami untuk terus memperluas pengetahuan Anda di berbagai teknologi.