Interface Generik
Termasuk bagian Pengantar TypeScript dalam perjalanan JavaScript di Coddy. Pelajaran 61 dari 73.
Sama seperti kamu dapat membuat fungsi generik, kamu juga dapat membuat interface generik. Ini memungkinkan kamu menentukan bentuk object sambil menjaga tipe property tertentu tetap fleksibel dan dapat digunakan kembali.
Berikut cara membuat interface generik menggunakan sintaks parameter tipe yang sama:
interface Container<T> {
value: T;
isEmpty: boolean;
}<T> setelah nama interface membuat parameter tipe yang dapat digunakan di seluruh definisi interface. Dalam contoh ini, property value akan memiliki tipe apa pun yang kamu tentukan saat menggunakan interface, sedangkan isEmpty tetap bertipe boolean yang tetap.
Saat menggunakan interface generik, kamu menentukan tipe konkret di dalam tanda kurung sudut:
const stringContainer: Container<string> = {
value: "hello",
isEmpty: false
};
const numberContainer: Container<number> = {
value: 42,
isEmpty: false
};Tantangan
MudahBuat interface generik bernama Result yang dapat menampung data dengan tipe apa pun beserta informasi keberhasilan.
Interface ini harus memiliki dua property:
successbertipebooleandatabertipeT(parameter tipe generik)
Buat objek berikut menggunakan interface generikmu:
stringResultbertipeResult<string>dengansuccess: truedandata: "Operation completed"numberResultbertipeResult<number>dengansuccess: truedandata: 42booleanResultbertipeResult<boolean>dengansuccess: falsedandata: falsearrayResultbertipeResult<string[]>dengansuccess: truedandata: ["item1", "item2", "item3"]
Buat fungsi generik bernama processResult yang:
- Menggunakan parameter tipe generik
T - Menerima satu parameter
resultbertipeResult<T> - Mengembalikan pesan string
- Jika
successbernilaitrue, kembalikan"Success: [data]" - Jika
successbernilaifalse, kembalikan"Failed: [data]"
Cetak output berikut:
- Cetak hasil pemanggilan
processResultdenganstringResult - Cetak hasil pemanggilan
processResultdengannumberResult - Cetak hasil pemanggilan
processResultdenganbooleanResult - Cetak hasil pemanggilan
processResultdenganarrayResult - Cetak
stringResult.data
Coba sendiri
// TODO: Tulis kodemu di sini
// Buat interface generik Result
// Buat object menggunakan interface Result
// Buat fungsi generik processResult
// Cetak output yang dimintaPelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Pengantar TypeScript
1Memulai dengan TypeScript
Apa itu TypeScript?Mengapa menggunakan TypeScript?Kode TypeScript pertamamuProses kompilasi dan errorRekap: Pengantar TS4Bekerja dengan Fungsi
Menentukan Tipe Parameter dan Nilai KembaliMenentukan Tipe Fungsi PanahTipe Nilai Kembali 'void'Parameter Opsional dengan '?'Nilai Default ParameterMenentukan Tipe Rest ParameterMendefinisikan Tipe FungsiRingkasan: Membangun Fungsi Bertipe2Tipe Inti
Tipe Dasar: str, num, booleanTipe 'any': Jalan KeluarTipe 'unknown'Bekerja dengan null & undefinedInferensi Tipe dalam PraktikAnotasi Tipe EksplisitRangkuman: Latihan Tipe Inti5Tipe: Alias, Union & Inter
Alias Tipe untuk Tipe PrimitifTipe Union ('|')Bekerja dengan Tipe UnionTipe LiteralTipe Intersection ('&')Menggabungkan Alias TipeRekap: Kombinasi Tipe Lanjutan3Struktur Data: array dan tuple
Array BertipeModifier 'readonly' untuk arrayApa Itu tuple?Mendeklarasikan dan Mengakses tupleDestructuring tupletuple ReadonlyArray Bertipe MultidimensiOperator Spread dengan arrayRangkuman: array dan tuple6Menentukan Tipe Object dan Interface
Anotasi Tipe Object secara InlineAlias Tipe untuk ObjectPengantar InterfaceInterface vs. Alias TipeProperti Opsional dan ReadonlyMemperluas Interface dan TipeMenambahkan Method ke InterfaceRingkasan: Menentukan Bentuk Object9Generics: Sekilas Pandang
Masalah yang Diatasi GenericsMembuat Fungsi Identitas GenerikMenggunakan Fungsi GenerikArray GenerikInterface GenerikUlasan: Latihan Fungsi GenerikLatihan sendiri: Playground TypeScript