Soalan - Apakah TypeScript?
- TypeScript ialah superset Javascript
- Menambahkan jenis statik, membolehkan kualiti kod dipertingkatkan dan semakan ralat sebelum masa jalan.
- Ia menyokong ciri seperti antara muka, enum, generik dan banyak lagi.
- Menyediakan semakan ralat yang lebih baik, alatan yang dipertingkatkan dan kebolehbacaan kod yang lebih baik.
Soalan - Apakah tugasan jenis tersurat dan tersirat?
- Eksplisit bermaksud menulis jenis. Seperti di bawah -
let firstName: string = "Rutvik";
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
- Tersirat bermakna TypeScript akan meneka jenis, berdasarkan nilai. Jenis di bawah akan dianggap sebagai nombor
let age = 23;
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Soalan - Perbezaan antara mana-mana, tidak diketahui dan tidak pernah dalam TypeScript?
- Jenis mana-mana digunakan untuk menetapkan sebarang jenis pembolehubah.
- Ia tidak akan memberikan ralat walaupun anda menetapkan semula jenis lain.
let x: any = 10;
x = 'hello'; // No TypeScript error
console.log(x.toUpperCase()); // No TypeScript error
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
- Jenis yang tidak diketahui adalah lebih baik daripada jenis mana-mana, kerana ia memerlukan kami menyemak jenis sebelum melakukan operasi pada nilai.
let y: unknown = 10;
// Type assertion needed before using y as number
if (typeof y === 'number') {
console.log(y.toFixed(2));
}
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
- Jenis tidak pernah mewakili nilai yang tidak pernah berlaku.
- Ia biasanya digunakan untuk mengembalikan penyataan fungsi yang tidak kembali dengan betul.
function throwError(message: string): never {
throw new Error(message);
}
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Soalan - Bagaimana anda memberikan jenis Tatasusunan?
- Untuk tatasusunan menaip, kita perlu memberikan jenis seperti di bawah. Dalam contoh di bawah ini tatasusunan boleh mengandungi jenis rentetan sahaja.
const names: string[] = ["Rutvik", "Rohit", "Virat"];
names.push("Bumrah"); // no error
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
- Kami juga boleh menggunakan kata kunci baca sahaja, yang menghalang tatasusunan ditukar.
const names: readonly string[] = ["Rutvik", "Rohit", "Virat"];
names.push("Bumrah"); // Error: Property 'push' does not exist on type 'readonly string[]'.
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Soalan - Apakah Jenis Inferens dalam tatasusunan?
- Jika kami tidak memberikan sebarang jenis pada tatasusunan, ia akan membuat kesimpulan jenis secara automatik.
const numbers = [1, 2, 3]; // inferred to type number[]
numbers.push(4); // no error
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Soalan - Apakah tupel?
- Ia ialah tatasusunan jenis dengan panjang dan jenis yang telah ditetapkan.
- Ia sangat berguna dalam memberikan jenis tatasusunan campuran dengan jenis yang berbeza.
let ourTuple: [number, boolean, string];
// initialize correctly
ourTuple = [5, false, 'Coding Hero was here'];
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Soalan - Apakah tuple baca sahaja?
- Jika kami tidak membuat tuple baca sahaja, kami boleh menambah lebih banyak item pada yang ditakrifkan dan TypeScript tidak akan membuang sebarang ralat.
let ourTuple: [number, boolean, string];
// initialize correctly
ourTuple = [5, false, 'Coding Hero was here'];
//No safety in indexes from 3
ourTuple.push('This is wrong');
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
- Sekarang, untuk membetulkannya, kami menggunakan kata kunci baca sahaja sebelum jenis.
let ourTuple: readonly [number, boolean, string];
// initialize correctly
ourTuple = [5, false, 'Coding Hero was here'];
// throws error as it is readonly
ourTuple.push('Coding Hero took a day off');
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Soalan - Bagaimana untuk memberikan jenis untuk Objek?
- Kita boleh memberikan jenis objek dengan mencipta objek lain seperti struktur dan menentukan kekunci dan jenis kekunci dalam objek.
interface CarTypes {
brand: string,
model: string,
year: number
}
const car: CarTypes = {
brand: "Tata",
model: "Punch",
year: 2020
};
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Soalan - Bagaimana untuk mempunyai sifat pilihan dalam Objek?
- Untuk memberikan sifat atau kunci pilihan, kita perlu menambah ? selepas kunci itu.
let firstName: string = "Rutvik";
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Soalan - Terangkan enum dalam TypeScript?
- Enum ialah sejenis pembolehubah yang merupakan pemalar. Anda perlu menggunakan nilai di dalamnya sahaja.
- Nilai adalah angka secara lalai dan bermula dengan 0 dan kenaikan sebanyak 1.
- Ia boleh berasaskan angka atau rentetan
let age = 23;
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
let x: any = 10;
x = 'hello'; // No TypeScript error
console.log(x.toUpperCase()); // No TypeScript error
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Soalan - Apakah Jenis Alias?
- Mereka membenarkan untuk menentukan jenis dengan nama tersuai dan boleh digunakan untuk semua jenis primitif seperti rentetan dan nombor dan juga jenis kompleks seperti objek dan tatasusunan.
let y: unknown = 10;
// Type assertion needed before using y as number
if (typeof y === 'number') {
console.log(y.toFixed(2));
}
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Soalan - Apakah antara muka?
- Antara muka adalah seperti jenis tetapi boleh digunakan hanya untuk objek.
function throwError(message: string): never {
throw new Error(message);
}
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Soalan - Bagaimana untuk memanjangkan antara muka?
- Antara muka boleh dilanjutkan dengan kata kunci lanjutan.
const names: string[] = ["Rutvik", "Rohit", "Virat"];
names.push("Bumrah"); // no error
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Soalan - Apakah jenis Kesatuan dan Persimpangan?
Kesatuan:-
- Jenis kesatuan digunakan apabila sifat boleh lebih daripada satu nilai, seperti rentetan atau nombor.
- Atas sebab ini ia juga dipanggil ATAU dan digunakan dengan menggunakan | simbol.
const names: readonly string[] = ["Rutvik", "Rohit", "Virat"];
names.push("Bumrah"); // Error: Property 'push' does not exist on type 'readonly string[]'.
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Persimpangan:-
- Jenis persimpangan digunakan apabila menggabungkan berbilang jenis menjadi satu.
- Atas sebab ini ia juga dipanggil DAN dan digunakan dengan menggunakan & simbol.
const numbers = [1, 2, 3]; // inferred to type number[]
numbers.push(4); // no error
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Soalan - Apakah fungsi dalam Typescript?
Bagaimana untuk memberikan jenis pulangan dalam fungsi?
- Kami boleh memberikan jenis pemulangan fungsi dengan : simbol selepas nama fungsi.
let ourTuple: [number, boolean, string];
// initialize correctly
ourTuple = [5, false, 'Coding Hero was here'];
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Bagaimana untuk memberikan jenis parameter dalam fungsi?
- Kami boleh memberikan jenis parameter dengan menyebutnya selepas setiap parameter dengan simbol :.
let ourTuple: [number, boolean, string];
// initialize correctly
ourTuple = [5, false, 'Coding Hero was here'];
//No safety in indexes from 3
ourTuple.push('This is wrong');
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Bagaimana untuk memberikan parameter pilihan, lalai dan rehat dalam fungsi?
- Dengan parameter lalai, kami boleh menandakan parameter sebagai pilihan. Seperti ini, di mana c adalah pilihan dan dilambangkan dengan ?.
let ourTuple: readonly [number, boolean, string];
// initialize correctly
ourTuple = [5, false, 'Coding Hero was here'];
// throws error as it is readonly
ourTuple.push('Coding Hero took a day off');
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
- Nilai lalai(ciri ES6), mengikut jenis.
interface CarTypes {
brand: string,
model: string,
year: number
}
const car: CarTypes = {
brand: "Tata",
model: "Punch",
year: 2020
};
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
- Parameter selebihnya (ciri ES6), diberikan jenis tatasusunan, kerana ia menukar item yang diluluskan dalam tatasusunan.
interface CarTypes {
brand: string,
model: string,
year?: number
}
const car: CarTypes = {
brand: "Tata",
model: "Punch"
};
Salin selepas log masuk
Salin selepas log masuk
Soalan - Apakah penghantaran dalam TypeScript?
- Penghantaran ialah proses mengatasi jenis pembolehubah.
- Seperti dalam contoh di bawah, jenisnya tidak diketahui tetapi dibuat rentetan semasa menggunakan kata kunci sebagai.
enum Direction {
Up = 1,
Down,
Left,
Right,
}
console.log(Direction.Up); // 1
console.log(Direction.Down); // 2
Salin selepas log masuk
Salin selepas log masuk
- Kami juga boleh menggunakan <> sebagai ganti sebagai. Kedua-duanya bermaksud sama.
let firstName: string = "Rutvik";
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Soalan - Apakah Generik dalam TypeScript?
- Generik dalam Typeascript membolehkan anda mencipta komponen atau salur yang boleh digunakan semula yang boleh berfungsi dengan berbilang jenis data.
let age = 23;
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Soalan - Jenis Utiliti dalam TypeScript?
- TypeScript menyediakan Jenis Utiliti untuk memudahkan transformasi jenis biasa.
- Jenis ini memudahkan untuk memanipulasi dan berinteraksi dengan jenis objek dan antara muka.
- Berikut ialah pecahan beberapa jenis utiliti yang biasa digunakan:
1. Separa
- Menjadikan semua sifat jenis T sebagai pilihan.
- Kes penggunaan: Apabila anda ingin mencipta objek yang hanya memerlukan beberapa sifat.
let x: any = 10;
x = 'hello'; // No TypeScript error
console.log(x.toUpperCase()); // No TypeScript error
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
2. Diperlukan
- Menjadikan semua sifat jenis T diperlukan.
- Kes penggunaan: Apabila anda ingin menguatkuasakan bahawa semua sifat mesti ada.
let y: unknown = 10;
// Type assertion needed before using y as number
if (typeof y === 'number') {
console.log(y.toFixed(2));
}
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
3. Baca sahaja
- Menjadikan semua sifat jenis T baca sahaja.
- Kes penggunaan: Untuk memastikan sifat objek tidak boleh diubah suai.
function throwError(message: string): never {
throw new Error(message);
}
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
4. Pilih
- Mencipta jenis dengan memilih satu set sifat K daripada jenis T.
- Kes penggunaan: Apabila anda hanya memerlukan sifat tertentu daripada jenis.
const names: string[] = ["Rutvik", "Rohit", "Virat"];
names.push("Bumrah"); // no error
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
5. Tinggalkan
- Mencipta jenis dengan meninggalkan set sifat K daripada jenis T.
- Kes penggunaan: Apabila anda mahukan semua sifat kecuali yang khusus.
const names: readonly string[] = ["Rutvik", "Rohit", "Virat"];
names.push("Bumrah"); // Error: Property 'push' does not exist on type 'readonly string[]'.
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
6. Rekod
- Membina jenis dengan kekunci K dan nilai jenis T.
- Kes penggunaan: Untuk mencipta jenis objek dengan kunci tetap dan jenis nilai yang konsisten.
const numbers = [1, 2, 3]; // inferred to type number[]
numbers.push(4); // no error
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
7. Kecualikan
- Tidak termasuk daripada jenis T semua jenis yang boleh diserahkan kepada U.
- Kes penggunaan: Untuk menapis jenis tertentu.
let ourTuple: [number, boolean, string];
// initialize correctly
ourTuple = [5, false, 'Coding Hero was here'];
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
8. Ekstrak
- Ekstrak daripada jenis T sahaja jenis yang boleh diserahkan kepada U.
- Kes penggunaan: Untuk mengecilkan jenis kepada subset tertentu.
let ourTuple: [number, boolean, string];
// initialize correctly
ourTuple = [5, false, 'Coding Hero was here'];
//No safety in indexes from 3
ourTuple.push('This is wrong');
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
9. Tidak Boleh Batal
- Tidak termasuk null dan undefined daripada jenis T.
- Kes penggunaan: Untuk memastikan nilai tidak batal atau tidak ditentukan.
let ourTuple: readonly [number, boolean, string];
// initialize correctly
ourTuple = [5, false, 'Coding Hero was here'];
// throws error as it is readonly
ourTuple.push('Coding Hero took a day off');
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
10. ReturnType
- Menyimpulkan jenis pemulangan jenis fungsi.
- Kes guna: Untuk menangkap dan menggunakan jenis pemulangan fungsi.
interface CarTypes {
brand: string,
model: string,
year: number
}
const car: CarTypes = {
brand: "Tata",
model: "Punch",
year: 2020
};
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
11. InstanceType
- Membina jenis yang terdiri daripada jenis contoh jenis fungsi pembina T.
- Kes penggunaan: Untuk mendapatkan jenis tika kelas.
interface CarTypes {
brand: string,
model: string,
year?: number
}
const car: CarTypes = {
brand: "Tata",
model: "Punch"
};
Salin selepas log masuk
Salin selepas log masuk
12. Parameter
- Mengekstrak jenis parameter jenis fungsi.
- Kes penggunaan: Untuk menggunakan semula jenis parameter fungsi.
enum Direction {
Up = 1,
Down,
Left,
Right,
}
console.log(Direction.Up); // 1
console.log(Direction.Down); // 2
Salin selepas log masuk
Salin selepas log masuk
Atas ialah kandungan terperinci Soalan Temuduga TypeScript. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!