Labor – Osztály deklarálása általános használatával
Ebben a laborban általános eszközökkel bővítheti az osztály funkcióit.
1. gyakorlat: Osztály deklarálása általános használatával
Az DataStore
osztály olyan segédprogramfüggvényeket tartalmaz, amelyek legfeljebb tíz string
elemet tárolhatnak egy tömbben, és visszaadhatják az egyes elemekben tárolt értéket. Ebben a gyakorlatban egy általános használatával fogja újraírni az DataStore
osztályt, hogy az a példányosításkor megadott bármilyen típusú elemeket tárolhassa.
Klónozza a kezdő adattárat a parancssorba az alábbiak beírásával.
git clone https://github.com/MicrosoftDocs/mslearn-typescript cd mslearn-typescript/code/module-06/m06-start code .
Nyissa meg a fájlmodul06.ts fájlt.
Keresse meg a következőt
TODO: Add and apply a type variable
: .Az osztálydeklarációban
DataStore
adjon hozzá egy úgynevezett típusváltozótT
.class DataStore<T> { // existing code... }
Adja hozzá a típusváltozót
T
a_data
tulajdonságdeklarációhoz.private _data: Array<T> = new Array(10);
A függvényben
AddOrUpdate
frissítse a paraméter típusátitem
a típusváltozóraT
.AddOrUpdate(index: number, item: T) { if(index >=0 && index <10) { this._data[index] = item; } }
Keresse meg a következőt
TODO Test items as numbers
: .Ellenőrizze, hogy a típusváltozó képes-e számokat fogadni. Deklaráljon egy új változót,
empIDs
és rendeljen hozzá egy újDataStore
objektumot. Hívja meg a függvénytAddOrUpdate
, és rendeljen hozzá számtípuselemeket.let empIDs = new DataStore<number>(); empIDs.AddOrUpdate(0, 50); empIDs.AddOrUpdate(1, 65); empIDs.AddOrUpdate(2, 89); console.log(empIDs.GetData(0)); // returns 50
Keresse meg a következőt
TODO Test items as objects
: .Ellenőrizze, hogy a típusváltozó elfogad-e egyéni objektumot. Deklaráljon egy meghívást, amely három tulajdonságot tartalmaz:
name
mint astring
,breed
mint astring
, ésage
mint anumber
.type
Pets
Deklaráljon egy új változót,pets
és rendeljen hozzá egy újDataStore
objektumot. Hívja meg a függvénytAddOrUpdate
, és rendeljen hozzáPet
objektumokat.type Pets = { name: string; breed: string; age: number } let pets = new DataStore<Pets>(); pets.AddOrUpdate(0, { name: 'Rex', breed: 'Golden Retriever', age: 5}); pets.AddOrUpdate(1, { name: 'Sparky', breed: 'Jack Russell Terrier', age: 3}); console.log(pets.GetData(1)); // returns { name: 'Sparky', breed: 'Jack Russell Terrier', age: 3 }
Tesztkörnyezeti megoldás
A kód végleges verziójának megtekintéséhez írja be a következőt a parancssorba.
cd ../m06-end
code .
Nyissa meg a fájlmodul06.ts fájlt a labor megoldásának megtekintéséhez. A megoldás futtatásához a fejlesztői környezet beállításával kapcsolatos további információkért tekintse meg a fenti Tesztkörnyezet beállítási szakaszát.