Gyakorlat – Felület deklarálása és példányosítása a TypeScriptben
Interfész deklarálásához kezdje a interface
kulcsszóval, majd a felület nevével (az azonosítóval). Előfordulhat, hogy a felület neve nem szerepel a típusrendszer előre definiált típusnevei között. És konvenció szerint a felületnevek PascalCase-ben vannak.
Megjegyzés:
A TypeScript kódolási irányelvei azt javasolják, hogy a felületek ne a betűvel I
kezdődjenek.
Ezután adja meg a felület tulajdonságait (vagy tagjait) és típusát. A tulajdonságok kötelezőek, nem kötelezőek vagy csak olvashatók.
Tulajdonságtípus | Leírás | Példa |
---|---|---|
Szükséges | Minden tulajdonság kötelező, kivéve, ha másként van megadva. | firstName: string; |
Választható | Adjon hozzá kérdőjelet (? ) a tulajdonságnév végéhez. Használja ezt a nem kötelező tulajdonságokhoz. Ez megakadályozza, hogy a típusrendszer hibát jelez, ha a tulajdonság nincs megadva. |
firstName?: string; |
Csak olvasás | Adja hozzá az olvasható kulcsszót a tulajdonság neve elé. Használja ezt olyan tulajdonságokhoz, amelyeket csak az objektum első létrehozásakor kell módosítani. | readonly firstName: string; |
Felület deklarálása a tagokkal
Nyissa meg a Játszótért , és távolítsa el a meglévő kódot.
Deklaráljon egy olyan felületet
IceCream
, amely két tulajdonságot tartalmaz:flavor
string
scoops
number.
interface IceCream { flavor: string; scoops: number; }
Most már implementálhatja az új felületet. Kezdjük azzal, hogy az
IceCream
interfészt típusként használjuk egy változó deklarációban. Deklaráljon egy típusnakIceCream
nevezettmyIceCream
új változót, majd rendeljen értékeket a szükséges tulajdonságokhoz. Figyelje meg, hogy amikor elkezdi beírni a tulajdonságneveket, az Intellisense a megfelelő neveket és típusokat javasolja. Ellenőrizze a munkáját az érték konzolon való megjelenítésével.let myIceCream: IceCream = { flavor: 'vanilla', scoops: 2 } console.log(myIceCream.flavor);
Válassza a Futtatás lehetőséget. Figyelje meg, hogy az íz megjelenik a Napló ablakban.
Ezután hozzunk létre egy függvényt az alján, amelynek neve
tooManyScoops
az interfésztIceCream
használja paramétertípusként. Ez a függvény ellenőrzi a hatókörök számát az IceCream objektumban, és az eredmény alapján egy üzenetet ad vissza. A munka teszteléséhez adja át az objektumot{flavor: 'vanilla', scoops: 5}
paraméterként, és ellenőrizze az eredményt a konzolra való visszatéréssel.function tooManyScoops(dessert: IceCream) { if (dessert.scoops >= 4) { return dessert.scoops + ' is too many scoops!'; } else { return 'Your order will be ready soon!'; } } console.log(tooManyScoops({flavor: 'vanilla', scoops: 5}));
Futtassa a kódot a Futtatás gombra kattintva. A kimenetnek így kell kinéznie.
"vanilla" "5 is too many scoops!"
Nyissa meg a JavaScript panelt, és figyelje meg a JavaScript-kód és a TypeScript-kód közötti különbségeket. A felületnek nincs ábrázolása a JavaScript-kódban.
Mi történik, ha egy másik tulajdonságot ad hozzá a
IceCream
felülethez? Adjunk hozzá egy új, hívottinstructions
tulajdonságot, és rendeljük hozzá a típushozstring
.Tekintse át a kódban megjelenő hibákat. A feloldásukhoz vegye fel a
instructions
tulajdonságot a változódeklaráció implementálási részleteibe, és adja hozzá a függvénynek átadott paraméterként. Egyelőre tegye ainstructions
tulajdonságot opcionálissá egy kérdőjel hozzáadásával a tulajdonság nevéhez. Az összes hibát meg kell oldani, mert ainstructions
tulajdonságra már nincs szükség a felület számára.
Eddig jó! De a fagylalt napozás nélkül csak fagylalt. Következő lépésként áttekintjük, hogyan bővíthető az interfész.