Rumah > hujung hadapan web > tutorial js > Soalan Temuduga TypeScript

Soalan Temuduga TypeScript

Linda Hamilton
Lepaskan: 2025-01-05 13:44:40
asal
210 orang telah melayarinya

TypeScript Interview Questions

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!

sumber:dev.to
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan