From d5066021abe1ac00311c4f51068c5d26481624e8 Mon Sep 17 00:00:00 2001 From: Tim Rijkse Date: Tue, 3 Mar 2026 14:43:16 +0100 Subject: [PATCH] fix: add pdf --- .../Les04-Bijlage-B-Huiswerkopdracht.md | 118 ++++----- .../Les04-Huiswerkopdracht.pdf | 36 +-- .../Les04-Lesopdracht.pdf | 231 ++++++++++++++++++ .../les4-huiswerk-js-converter.zip | Bin 12003 -> 46376 bytes 4 files changed, 292 insertions(+), 93 deletions(-) create mode 100644 Les04-TypeScript-Fundamentals/Les04-Lesopdracht.pdf diff --git a/Les04-TypeScript-Fundamentals/Les04-Bijlage-B-Huiswerkopdracht.md b/Les04-TypeScript-Fundamentals/Les04-Bijlage-B-Huiswerkopdracht.md index 3dcdafc..d043644 100644 --- a/Les04-TypeScript-Fundamentals/Les04-Bijlage-B-Huiswerkopdracht.md +++ b/Les04-TypeScript-Fundamentals/Les04-Bijlage-B-Huiswerkopdracht.md @@ -4,14 +4,14 @@ In deze les heb je geleerd hoe TypeScript je code veiliger maakt met types. Nu ga je dat in de praktijk brengen! Je krijgt een JavaScript project met utility functies voor een e-commerce systeem. Jouw taak: **alles omzetten naar TypeScript zonder `any` types te gebruiken**. -Dit huiswerk bereidt je voor op Les 5, waar je deze getypeerde functies met React gaat combineren. +Dit huiswerk bereidt je voor op Les 5, waar je TypeScript met React gaat combineren. --- ## Setup 1. **Download** `les4-huiswerk-js-converter.zip` van Teams -2. **Pak uit** en open de folder in Cursor/VS Code +2. **Pak uit** en open de folder in Cursor 3. **Installeer dependencies**: `npm install` 4. **Bekijk** de JavaScript bestanden in `src/` 5. **Begin omzetten!** @@ -44,15 +44,17 @@ Je moet `users.js` omzetten naar `users.ts`. **Functies die je zult tegenkomen:** - `createUser(name, email, age)` — maakt een nieuwe user aan -- `findUser(users, id)` — zoekt een user op id -- `updateUser(users, id, updates)` — update user gegevens +- `findUserByEmail(users, email)` — zoekt een user op e-mailadres +- `updateUser(user, updates)` — update user gegevens - `filterActiveUsers(users)` — geeft alle actieve users terug +- `deactivateUser(user)` — zet een user op inactief **Wat je moet doen:** -1. Maak een `User` interface met: `id`, `name`, `email`, `age`, `isActive` (boolean) -2. Zorg dat de `createUser` functie het juiste type teruggeeft -3. Type alle parameters en return types volledig -4. Geen `any`! +1. Maak een `User` interface met: `id`, `name`, `email`, `age`, `isActive`, `createdAt` +2. Zorg dat `createUser` het juiste type teruggeeft +3. `findUserByEmail` kan `User | null` teruggeven +4. Type alle parameters en return types volledig +5. Geen `any`! **Hint:** Kijk in de tests hoe `User` wordt gebruikt — dat zegt je veel over de verwachte types. @@ -63,19 +65,22 @@ Je moet `users.js` omzetten naar `users.ts`. Je moet `products.js` omzetten naar `products.ts`. **Functies die je zult tegenkomen:** -- `createProduct(name, price, category)` — maakt een nieuw product aan -- `applyDiscount(product, discountPercent)` — past korting toe +- `createProduct(name, price, category, description)` — maakt een nieuw product aan +- `applyDiscount(product, percentage)` — past korting toe - `getExpensiveProducts(products, minPrice)` — filtert dure producten -- `formatPrice(price)` — formatteert prijs als string +- `formatPrice(price, currency)` — formatteert prijs als string met valutasymbool +- `rateProduct(product, rating)` — geeft een product een beoordeling (1-5) + +Er is ook een `CATEGORIES` constante: een array met geldige categorieën. **Wat je moet doen:** -1. Maak een `Product` interface met: `id`, `name`, `price`, `category`, `discount` (optioneel) -2. Maak een **union type** voor category: `"electronics" | "clothing" | "books" | "other"` +1. Maak een `Product` interface met: `id`, `name`, `price`, `category`, `description` (string of null), `inStock`, `rating` (number of null) +2. Maak een **union type** voor category: `"electronics" | "clothing" | "food" | "books" | "sports"` 3. Type alle functies compleet -4. De `applyDiscount` functie geeft een nieuw object terug (mutation voorkomen) +4. De `applyDiscount` functie geeft een nieuw object terug (geen mutation) 5. Geen `any`! -**Extra uitdaging:** Sommige producten hebben misschien geen discount. Maak dit veld optioneel met `?` +**Let op:** `description` en `rating` kunnen `null` zijn. Gebruik `string | null` en `number | null`. --- @@ -85,19 +90,18 @@ Je moet `orders.js` omzetten naar `orders.ts`. **Functies die je zult tegenkomen:** - `createOrder(user, products)` — maakt een order aan -- `calculateTotal(order)` — berekent totale prijs -- `getOrderStatus(order)` — geeft de status terug +- `calculateTotal(products)` — berekent totale prijs van een productenlijst +- `updateOrderStatus(order, newStatus)` — wijzigt de status (met validatie van geldige transities) - `getOrdersByUser(orders, userId)` — filtert orders per user +- `getOrdersByStatus(orders, status)` — filtert orders op status **Wat je moet doen:** -1. Maak een `Order` interface met: `id`, `userId`, `products` (array), `total`, `status`, `createdAt` -2. Maak een **union type** voor OrderStatus: `"pending" | "processing" | "shipped" | "delivered"` -3. De `userId` in Order moet verwijzen naar de User die je in bestand 1 hebt gemaakt -4. `products` in Order moet een array van Product zijn -5. Type alle functies compleet -6. Geen `any`! +1. Maak een `Order` interface met: `id`, `userId`, `products` (array van `{ productId: string; name: string; price: number }`), `total`, `status`, `createdAt` +2. Maak een **union type** voor OrderStatus: `"pending" | "processing" | "shipped" | "delivered" | "cancelled"` +3. Type alle functies compleet +4. Geen `any`! -**Samenwerking:** Je Orders werken met Users en Products van de vorige bestanden! +**Let op:** De `products` in een Order zijn NIET dezelfde als `Product[]`. Het zijn vereenvoudigde objecten met alleen `productId`, `name` en `price`. --- @@ -109,16 +113,17 @@ Je moet `utils.js` omzetten naar `utils.ts`. Dit bestand heeft wat moeilijkere t - `formatDate(date)` — formatteert een Date naar "DD-MM-YYYY" - `generateId()` — genereert een willekeurige string ID - `validateEmail(email)` — checkt of email geldig is (return boolean) -- `sortBy(items, key)` — sorteert een array op een bepaalde eigenschap +- `sortBy(items, key, direction)` — sorteert een array op een eigenschap, optioneel ascending/descending +- `groupBy(items, key)` — groepeert items per key-waarde in een object **Wat je moet doen:** 1. `formatDate` ontvangt een `Date` en geeft een `string` terug 2. `generateId` geeft altijd een `string` terug 3. `validateEmail` geeft een `boolean` terug -4. `sortBy` is het lastigste! Dit is waar **generics** om de hoek komen kijken (voorbereiding Les 5) +4. `sortBy` is het lastigste! Dit is waar **generics** om de hoek komen kijken - `sortBy` moet werken met *elk* soort array - - De functie signature zou iets als `function sortBy(items: T[], key: keyof T): T[]` moeten zijn - - Dit zeggen we in Les 5 meer over, maar je mag het nu al proberen! + - De functie signature zou iets als `function sortBy(items: T[], key: keyof T, direction?: string): T[]` moeten zijn +5. `groupBy` gebruikt ook generics: `function groupBy(items: T[], key: keyof T): Record` **Geen `any`!** @@ -133,8 +138,9 @@ Zorg dat je aan álle punten voldoet: - ✅ **Alle functies volledig getypt** — parameters EN return types - ✅ **Interfaces voor alle objecten** — User, Product, Order - ✅ **Union types waar logisch** — ProductCategory en OrderStatus -- ✅ **Optional properties waar nodig** — velden met `?` +- ✅ **Nullable types waar nodig** — `string | null` en `number | null` - ✅ **`npm run check` moet 0 errors geven** — TypeScript compiler akkoord +- ✅ **`npm test` moet groen zijn** — alle 26 tests slagen --- @@ -166,6 +172,7 @@ interface User { email: string; age: number; isActive: boolean; + createdAt: Date; } ``` @@ -178,7 +185,7 @@ Cursor geeft je hover-tips. Hover over een functie en zie wat het verwacht. Maar **4. Union types zijn duidelijker dan strings** Dit: ```typescript -type OrderStatus = "pending" | "processing" | "shipped" | "delivered"; +type OrderStatus = "pending" | "processing" | "shipped" | "delivered" | "cancelled"; ``` Is veel beter dan: ```typescript @@ -187,14 +194,15 @@ status: string; Waarom? TypeScript geeft je autocomplete en warnt je als je een verkeerde status invult. -**5. Optional properties met `?`** -Niet alles is verplicht. Producten hebben misschien geen korting: +**5. Nullable types met `| null`** +Sommige velden kunnen null zijn: ```typescript interface Product { id: string; name: string; price: number; - discount?: number; // optioneel! + description: string | null; + rating: number | null; } ``` @@ -206,49 +214,9 @@ interface Product { --- -## Bonus Challenges - -Als je voort bent en meer wilt leren: - -**Bonus 1: JSDoc Comments** -Voeg JSDoc comments toe aan je interfaces. Dit geeft developers (inclusief jezelf later) hulp: - -```typescript -/** - * Vertegenwoordigt een gebruiker in het systeem - * @property id - Unieke identifier - * @property name - Volledige naam van de gebruiker - * @property email - E-mailadres (moet uniek zijn) - * @property age - Leeftijd in jaren - * @property isActive - Of de account actief is - */ -interface User { - id: string; - name: string; - email: string; - age: number; - isActive: boolean; -} -``` - -**Bonus 2: Barrel Export** -Maak een `src/index.ts` die alles exporteert: - -```typescript -export { User, createUser, findUser, updateUser, filterActiveUsers } from './users'; -export { Product, createProduct, applyDiscount, getExpensiveProducts, formatPrice } from './products'; -export { Order, createOrder, calculateTotal, getOrderStatus, getOrdersByUser } from './orders'; -export { formatDate, generateId, validateEmail, sortBy } from './utils'; -``` - -**Bonus 3: Generics in sortBy** -Probeer `sortBy` echt generiek te maken. Dit is Les 5 materiaal, maar je mag het nu al proberen! Hint: je hebt `` nodig en `keyof T`. - ---- - ## Inleveren -1. **Push naar GitHub** — je repositorywaar je al aan werkt +1. **Push naar GitHub** — je repository waar je al aan werkt 2. **Branch:** `feature/les4-typescript-converter` 3. **Commit message:** `feat: convert JavaScript utilities to TypeScript` 4. **Deadline:** Voor het begin van Les 5 @@ -267,4 +235,4 @@ Dit huiswerk duurt ongeveer **1,5 tot 2 uur** afhankelijk van je snelheid. Niet - Weet je de syntax van een type niet? Kijk in de lesson slides Les 4 - Denk je dat de tests fout zijn? Neem contact op! -Veel succes! 🚀 +Veel succes! diff --git a/Les04-TypeScript-Fundamentals/Les04-Huiswerkopdracht.pdf b/Les04-TypeScript-Fundamentals/Les04-Huiswerkopdracht.pdf index 09214a6..78fc827 100644 --- a/Les04-TypeScript-Fundamentals/Les04-Huiswerkopdracht.pdf +++ b/Les04-TypeScript-Fundamentals/Les04-Huiswerkopdracht.pdf @@ -132,7 +132,7 @@ endobj endobj 18 0 obj << -/Author (\(anonymous\)) /CreationDate (D:20260303125208+00'00') /Creator (\(unspecified\)) /Keywords () /ModDate (D:20260303125208+00'00') /Producer (ReportLab PDF Library - \(opensource\)) +/Author (\(anonymous\)) /CreationDate (D:20260303130225+00'00') /Creator (\(unspecified\)) /Keywords () /ModDate (D:20260303130225+00'00') /Producer (ReportLab PDF Library - \(opensource\)) /Subject (\(unspecified\)) /Title (\(anonymous\)) /Trapped /False >> endobj @@ -157,31 +157,31 @@ Gau0C>Ap!%'Roe[3.3$:4CPBXZqoA`C8IrbW-"X_74_,K*'=c:-eeLpScMMj-Opnd6Y$=4B$U4dF+o4, endobj 22 0 obj << -/Filter [ /ASCII85Decode /FlateDecode ] /Length 1190 +/Filter [ /ASCII85Decode /FlateDecode ] /Length 1271 >> stream -Gau`S9lK&M&A@sB9Q/X=Tnnr3O5)XLdk.du;q,Y;\I^NuCO/t>[2c/jW,m:p+a=rL6c7"),5FaYM/6trc"5>Z1lq-"_8dr4iEEtGn_&+&e\gk.qa,?,C3?UE$;UIEWtMDZmsB_/X-b61g#QH=/jq`fJ9t5/9Ma)g]Bj=dEcQS'n+"e&gNp'l<'YFljpGD=pNLMAQht`L?JWT<@:F<$[qH^_!l=:3KCQi)'giNL]SG:=Z2G,3,;>?_2\41)7U,$hhjFM/[%*Si0ChNi4R+D!k?4pK.Z9\#)&'\CXIPDQ9aA5qSC5=Pi10$>Rf'I&^I(V9k"%5&Iu,NgU-21LDpu+K\No8*S3BgEu:59'_9(&^og'O*ej61C6HW8-$j'SqLgHsB^ok>^_Gp'Lp[8tfa-Ma?U#%q2;g)mj[Yr_@90UWCF@:7Ukl(>G<'F2/Y;G\I#B34GFEqt%kK10p9A4`mNsMm7P.9X#<[#]_;2f;VK8B>c:I"&l07+<+h=.0.44SXj*\Z>h6/J+!j\m[ahH\f>[uo$XKp7t=6h)"X0V+A7d*FpjnNj@m'Ass>lO>J=?IJh*+"Uu3Jkm%YK11^3rD`>]#C12eZg(0SrtKbqr!&:\=c./B3a!]NGP:bDBc>HQ*%)B`Rt65iVd!/fpf!o`C=L]O`Hn?N9l`t'oTWqV[bX&Of",ZYM.JXlF',uL)kflTQAJ4;Xps/Fb1*]ue+iAEP"2F'?O=(6X$u^#Hd&%7hGo,1^9-KkIjS+h#8'D\l0tD%KaIc&&:C9;@28)tD7LO7#491b[@Tk[R*cN/Q>\TnUQBsil8T*VN+>jc8FY_N[(j)'(K$eSA`#kl?))d3't6^"G8m^t^ZRSYa%[4(D6Kg'Cg9X#&&l6N(7):?pY$MEdoD:oR4(+!`)&s+KF?j0-`#7k01&$H%\L@:IhV+]Big1Y?d6s/f>%7R'7=[IU!'W6ZPaNsGZ@BHnGtJ6rendstream +Gau0C9lK&M&A@sB9Q/X=cj96(Zt]C\2k-.47[l>Yj$#,uD\CNJ+mYo$95nbq&A[u"pZ^5ac/e9p9HR[=Z&SSH-+&966p,/1^1c]Up8?`JKY>XM/0G>JD]u\SM*4'(QSC_a`*C63:Zup2c8F0BWXRN+e2k9VC=KZg:kOIHE?"UUFB^d^0#HJ^pFX`\RX1%LMs*=_18!Kp?mjrICO[7Jf%Ll;RAMR9`Sg,k\8>2[$EPlc0aKh1k8_NHD^rj)"\+niWQsF8Ms+mIo$;\Nfm$T""n/i(k^%Pp7_6;m,c$A3Y.NS4rQ[cTF,MLUFdTZWJ87digeriL!!T_fBZ!9HKNkDlm\Gks*';_H4.?d!'dmj1=J5@BqA*?tY;s6;a##I/d8Z7cXO.r*_%KjOM-5D;*fS/[QJ"bLR&I+@2ZJTbbu@Ita)-i+6U&?ELMTBmA_JQr0;Jl^:l!#-970^m6IEWqAP+N#>TUiufjVhoaJY<'@5"Y`_ep`B_bNYV2>j[k-`Pda)*XHb]_BMV8ES=Q4Na!$&cMg]/<9\r't,kSb]`/E]G'&a]#%3U.]KC99WKquQ5WJm'c8^X>>7.*.b4BWi(o!4G`oQ;9k^H-3Y.kMk8JVj2tBqZbaR&Z^Stibr.`%C$]j4jr$4e)Dsd!Npi%nAa`42okIrI`B(i3GOj[#tQFt`50k=Ca\u8;"W]*[?S%9+#@Bk#O5-h1(l^OVDb=3)9*X,D-SY@mCN,t8c%6Ts1'Ij>di\5Bko$<+S7l0s?unGGBtJU=5G-`Ak+8iGIIJ>oK(sH6FR\NBBMd-p1[@#9jiPr^dd5*YX[$=6Br_IW,UcS"fnBqQ[+W/^nX8K7endstream endobj 23 0 obj << -/Filter [ /ASCII85Decode /FlateDecode ] /Length 1275 +/Filter [ /ASCII85Decode /FlateDecode ] /Length 1324 >> stream -GauHLgQ(#H&:NH>R/0B'2Mt%&[sdRO'4cZ1P9=b$U@&+.d5'@MgbK`6DQ!Rb+Y'fh:Kf'Qc\o`)/0qr4%CGL>d^T3=)=O8rXN"Uuc&g#[q+-B`r^Vo=gf$XnL=eIMgQ]N.!W-\1q`><$#l;caA2c/c2.4t$f',DX[.uNeCP-jKf,dB6:M/6DeGF._q:B4d.9*aYrFiZ><7UiRR`XYhAG1L"$Mf@Q:c@)?pcE2/+k9>1GagGbkRT9AO$=05J&t3'C=oq0+,g0ABJe\q`J9Eh?jdjm^%L'V>PYi+&(^Fr[?8H.CHpO@-ZgHE(V#,E]dG(bUQ,1Lh$4D2c5tkJA#?)/E-$eK5B4!k]meG,/,'L#"/RbK>ig``i>DL(lXWdRj%jH3'@N8c4$:G7B96u)*ua402=01N,aJH(2;KboQ]WQc@W33C]Du_Di8F[h$aYq<[=Pk0#pNTmS9OaaO(IQm/ZZ'Acc]msGrk8_p4%PklTMm4F+JU5Q:3n1J`fpN?oulrl6!I14b<~>endstream +Gau0DD/\/e&H88.EUtQ#86&N]?CVH,)Iu8=1i%lX)[?'F/("i:R8cbX6+ZHummP9X?_YWrlki8;h2up-h=9p,#mC#HmWZAJ\=C@82ZuYWP8Oqs;jb4MT-n8Yc:Fk$A:Bbr+f'5HB5n^G16_urlb^Rb_bh@;Gt79BbHDPC"CY.dGgW/Fu+tbOphULkON@]k*qj?#dTV,MA4jCK4R!#H6b.o"!0Z_jU`f\JCGFC,ZtN9KcmnOE:1)A6kMM([%jcCgrSMXi_HtQ8GqXf+UVa^&6+Ig;mY*,\bt:!SMH"i02*(J:4BkIPOF+jLNf5MVO0;lVUtptfbGsWJr2*ni_YgC5B6(2;^)KO/L`[9eN+efGa4[6cbBBqB2o/t@L`2J+36m+h$pGh3)TL^U)3"o=i-UgG==+E30#6]KQ-oif`kO;[,Y>I8(PZW@-_2O\JD0Vp>QK["19X>mI%i/BVr!NYfPC869+/2Uk6OpmV0lip"dU51+\@\#Trs8Qi'1CWCGYWg36sn]qsI/hRX9&K:!>1+VhNq@#7uJ9"n!f6!Ss!gi0[@'gc?G;o&5dHlDQjCkKq`-FjUG(-;'f$[QAt8@4=&AL:nu,7,Di.!rY((VI@Mp:1:R^!+WQr=loEXh-rf6*X8=4;Ipto"]VY$&).m2olY8QuG6cA4lh@,RE7lDm%FI7g1e^_j4S!SW_cg^0B!BI%OF"TK0h)Gm_YKq9fZhF9&i%\U.>)PE0MB8q(G5UdB>o:0ViS<\3>js0[-U@r#V0LJ0U5T2%6$?.bgq2s0e.5*?]!D%diGAeboPH2(4kC'A'q46nh8SNCpV1"O>;aIem]BAuqsjiY$d!p:\-?UG!1(YObl~>endstream endobj 24 0 obj << -/Filter [ /ASCII85Decode /FlateDecode ] /Length 447 +/Filter [ /ASCII85Decode /FlateDecode ] /Length 664 >> stream -Gau0>b>,r/&A7`fQCEfJfT).T&`QWdW(7X;al5WIUoBQ42DO8Ye\B-r>Z!@t6nlrUk]9./V'iM-0a9fPY],;+B]dn8NWkAl!1ir>#"T:gRW=\#cU]n4Wpl6hPo^d"G0gB:"l<3Z;p[9iYRluq,8U2>+*tF;auEoNpZj4F/@'+EYs\A#lB`e1tBQ1jeC6TV+TcBTunph_SLbu.H3D;"e87Q[saEf]'IfXA[TZT$i0XB"^?*TgI!>2QfIT!,\_*\VW,g']3%@sQ!e%p$?I,16icB)-Z/q:,mL$^Z;\(mf)LKB0qkc=[_ANIWdojYCU.]Yb,tYFQVkDp@EFlIO&%D>0[m#$if.)k*aD*I<^bl;4:Od;_`PD.~>endstream +GauHIbAO(/']%q&mZNSc`$RUAd4D;3e4S7R,W)i9j2)7F'/2:=X8Mo56`U?Q-Asdf"O__nSo\]g;]pB`o1]UClPLsi$IjWO!S"M_M!s:L*^,Kr=6YM6e9;l$SZ.Rj#Z3\nCj,I?Q-_0oK!!+R=6FF>"EeL9eLf+7_#u!t"Ku@GC3m"U$];G<^pegOC*-*JdeNSh"aE8q4#.gdf$>!08on>,giG%49BR;QC)W1kl5'b=9NF$$8?oXQ9*O(j1ooCPH6mr0fa97g8do`L8cE*QKc7'JUF)QPQfb:Co%tn6p=YTM9hsnFl1D$C/AnA+L9o$m3qSM9%=Bd;tbC"8N$KWU!/I:l"/P(mJ9$QfW)[c-B%)&4tG9M]fVKOT6#9h[>qBO9tl&eWFCgD"1=1d3!Y8Jfe8b&I5"jE7iBak4UL&#<^EA/mL3tl]RE/W&lg8]\l>eKrquH`%W4_endstream endobj 25 0 obj << /Filter [ /ASCII85Decode /FlateDecode ] /Length 1157 >> stream -Gaua>h/D%-%)Ccl=7GJ4m5d\!A]aA`DKeWi"cDur)fS&L4@aPC-;l0P)nNf`BK8X_a(`tDk[5Nnog/.=P8)8lil1h64otF?L&MYd`Z`#"-A[3E"9rT/>E@$1b*[jFF1fO]`%f;L4o?P8ML]ZK7)XU$4:s!Z'g:Td78h]H$rfP[7;30*_t@4J>$ne`lfG(ml]i`elc&CJ@[&7nI!7W&i61%fE."&`5.uO>(=K\bo(+J$,K*D`e:t-O,99]+%j;YWEl#5%/0U8h2"*cY#-$3n`Oj]_6qO(eM3=l@XK2rmm4tYcQ;"1>;>Si'J6+r$ZG`,=BP66m<'6PC6SFeZq`REHqgd]S6f0u9lX1KSM'e*gei$gE@i55h`PZKj(9kgi%#Hc(cF:#DMQgs?G#:;q[lo@XO^cL,o"X>ZQ8X;9&"Vaqk>=sM'<"JkB9A,S7aRm2G*kUf(q0#E!H4OYf/diq@ERUFE!XcBsUqn#aO?q-AH-XVk8=IQ#Ne_DHpiK=$3u'I'aFW:[O56bRD\4NA#[Y?8+\jo\V"e\6@2<2aA#+?:JQt1.J%DD&!BsJ+%Jcmo5NrQSuQa_8+aF8$?#_Dc4Ia``XQ#]Jg9RW?5W\+b9_H?k]R_neN]joM_[]P(P6YR#EqC-D@%I]5ieuf5`Lm[RTmZFZiVh9oCB!3R3Klc?[n*2))V#?m6G::W.e*UhGER,DlT)'j-VXkTRqnMj1\335P2Q*5]bLW;N@FSXg6rQJZ)ZKP:X_:;7dd7pG14^Tht;%%_%LaCHDp9S;4%pL%X\~>endstream +Gaua>h/Car&A[3#=54Gr0O3@Plsrn>W.RZT$l4qdp6)7Yeuc?8PCePaj1.-df;7`cF_E1$e+htkI[@\$;5;_n8NbI[j)`0f:U8[AF99:f_3`!s8NJhW%d>:80C%Yk]*sZ16ZGsB\ic$q9SGT^:rJ7q5;od"<8Q'9$:Po0?GdNH>!ioKKrQFkWa`6?5)_GDUuFZqRA(X3ZETO(]hI/%F[r=q6s2#qm%dek$gPW]Y66(FnufIS\.p\6$c.1l%="`J"#68S1355jRVrJ)]"-C/lakI+7bipIm\':bU:[Q^/a^f%QeiXMnUH5Jn&+IkHo3C4FaD"-\XcF$WOD?5gnH1f!E8N@2$S!=A'CC@afCOViMXZ8iM_8nj/]?@1q:h92URe5-+q/!X/=1452T&KM_1!c(ZOEGLBblGZeV<[#?gF'HZlC[$:Ei1pf_FA#KP+"Vg5ZTTA38TXmgNgk)oFTRqgEhs(Y$S1eHNm^WS*4=EajZPi@+9&&Npp3B0N'1E&tcL$X61!a<\D3Fa6Xn>9^jr!kW@#KGXn/\)d3]K\i[+QuGKZ\6S'14QgdgnUt9"Pk0X1W+6_m0d:"(Q?]HrO:'7XqpX(%?NucQdOKKN6uD9r6h`IC\3u''uV2_[F0Q8r@d4=A,S('-FE>HY!mnEmXlGm#08`0T,fu311]S4KHIG_$;i1PrU-DP^R8a*(k[[\Q>\"&A`XV(M/?&t4He)GpYNjGI4F4N0p%?)n`QjAH('/p:52t6=p>No2<;t>6b$GTaQ="%/KP:W\T=u>_#@$CI^T_n:$m''#aCHE[9S;2/qj(lU~>endstream endobj 26 0 obj << @@ -192,10 +192,10 @@ Gat%"D/\/e&H;*)EQs9T.l'TD])iD[g8o/g@9]nN7uXOrTkOcj'dc#AXfMQJts*M;N* endobj 27 0 obj << -/Filter [ /ASCII85Decode /FlateDecode ] /Length 1030 +/Filter [ /ASCII85Decode /FlateDecode ] /Length 1026 >> stream -Gau`R>BA7S&:Vs/f\li4LT8qUG%[0C3bb'NC!3L7M&52#NZjN_=im*&ld&aS6^oF_5*3[,-?=:3h/@5(6m9F&L>QGEn32KB'+0si2?kXeJF"6[=mr4XgFlPn\7,luKSUm^\?1N>MT$26A$M+08BOh]2I+ok@@L5rO\pp5_W*%:^hFY#6DMeXT*;t<4U/ZY,ctF(,=G?;S@i,k@&n`@fP\3,Q*`VJH8i1Ij)9?=h7p8YCfBcDATZ,KBnkdTif>3g*Q;:)IRdWNP2N.b_sAQ5ZD;,=cUTTf^%gKd+$Pcsa=>M=MUjM./_DDImbhW:W%XBIb`8C7+)'o4q;;j`9fLJqK:"-<8]6iIVM;JF`#KA\^?9X7qYE%+@(ObWiL1USJ2a(L%b&*LjrXFlHkUEnj`:,:f@?gDVg3orY-k[mg):ZOld1)on#`UIb+eKEe>Y!$fk2IL0ori&&J4Ej&%nuT1rl+KJm0@/IOV6Nd>8##]@FdqU=Hj4IsTU=s&a.mV1TQTXlFkpn$q;-mH)g7;7Ym#=8X>\n%UV0I`l*!1c?fAZ9Xrc^#-FWU\*)9cXXVm`:ROY+X4m[_*&oWnogk,gErrB/VXhk~>endstream +Gau`R>BA7S&:Vs/f\li4LT8qUG%[0C3bb'NC!3L7M&52#NZjN_=im*&ld&aS6^oF_5*3[,-?=:3h/@5(6m9F&L>QGEn32KB'+0si2?kXeJF"6[=mr4XgFlPn\7,luKSUm^\?1N>MT$26A$M+08BOh]2I+ok@@L5rO\pp5_W*%:^hFY#6DMeXT*;t<4U/ZY,ctF(,=G?;S@i,k@&n`@fP\3,Q*`VJH8i1Ij)9?=h7p8YCfBcDATZ,KBnkdTif>3g*Q;:)IRdWNP2N.b_sAQ5ZD;,=cUTTf^%gKd+$Pcsa=>M=MUjM./_DDImbhW:W%XBIb`8C7+)'o4q;;j`9fLJqK:"-<8]6iIVM;JF`#KA\^?9X7qYE%+@(ObWiL1USJ2a(L%b&*LjrXFlHkUEnj`:,:f@?gDVg3orY-k[mg):ZOld1)on#`UIb+eKEe>Y!$fk2IL0ori&&J4Ej&%nuT1rl+KJm0<4jL_nXh+a)*`-0iS;/JfQ_sdU%u_=%#jf(.pif]&Qthf&$"&[Vn40NHQT^kFCm]=[kLWPFReBg3,d0TG0[\e2PGNe;n*:K8)Dl"]6%)CDTpMba7/`Qjl!=]:h!LenpD*THi"8m/WJ=\:BXB,E]]kOE?t&WQ4XJf`e@6oQE:=IW/SV+hET%P&k?oLW9Sl?qdJY4QPU;G?h$71Mp!b@34"1ZXIZMI=*]YS7nE&6KAM*jhl>W~>endstream endobj 28 0 obj << @@ -229,16 +229,16 @@ xref 0000003059 00000 n 0000004285 00000 n 0000005517 00000 n -0000006799 00000 n -0000008166 00000 n -0000008704 00000 n -0000009953 00000 n -0000011352 00000 n -0000012474 00000 n +0000006880 00000 n +0000008296 00000 n +0000009051 00000 n +0000010300 00000 n +0000011699 00000 n +0000012817 00000 n trailer << /ID -[<303f86ceb380f890dac0dcd7915bdf2d><303f86ceb380f890dac0dcd7915bdf2d>] +[] % ReportLab generated PDF document -- digest (opensource) /Info 18 0 R @@ -246,5 +246,5 @@ trailer /Size 29 >> startxref -13544 +13887 %%EOF diff --git a/Les04-TypeScript-Fundamentals/Les04-Lesopdracht.pdf b/Les04-TypeScript-Fundamentals/Les04-Lesopdracht.pdf new file mode 100644 index 0000000..2cd9b5f --- /dev/null +++ b/Les04-TypeScript-Fundamentals/Les04-Lesopdracht.pdf @@ -0,0 +1,231 @@ +%PDF-1.4 +%“Œ‹ž ReportLab Generated PDF document (opensource) +1 0 obj +<< +/F1 2 0 R /F2 3 0 R /F3 4 0 R /F4 5 0 R /F5 6 0 R /F6 8 0 R +>> +endobj +2 0 obj +<< +/BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font +>> +endobj +3 0 obj +<< +/BaseFont /Helvetica-Bold /Encoding /WinAnsiEncoding /Name /F2 /Subtype /Type1 /Type /Font +>> +endobj +4 0 obj +<< +/BaseFont /Helvetica-Oblique /Encoding /WinAnsiEncoding /Name /F3 /Subtype /Type1 /Type /Font +>> +endobj +5 0 obj +<< +/BaseFont /ZapfDingbats /Name /F4 /Subtype /Type1 /Type /Font +>> +endobj +6 0 obj +<< +/BaseFont /Courier /Encoding /WinAnsiEncoding /Name /F5 /Subtype /Type1 /Type /Font +>> +endobj +7 0 obj +<< +/Contents 19 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 18 0 R /Resources << +/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] +>> /Rotate 0 /Trans << + +>> + /Type /Page +>> +endobj +8 0 obj +<< +/BaseFont /Symbol /Name /F6 /Subtype /Type1 /Type /Font +>> +endobj +9 0 obj +<< +/Contents 20 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 18 0 R /Resources << +/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] +>> /Rotate 0 /Trans << + +>> + /Type /Page +>> +endobj +10 0 obj +<< +/Contents 21 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 18 0 R /Resources << +/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] +>> /Rotate 0 /Trans << + +>> + /Type /Page +>> +endobj +11 0 obj +<< +/Contents 22 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 18 0 R /Resources << +/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] +>> /Rotate 0 /Trans << + +>> + /Type /Page +>> +endobj +12 0 obj +<< +/Contents 23 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 18 0 R /Resources << +/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] +>> /Rotate 0 /Trans << + +>> + /Type /Page +>> +endobj +13 0 obj +<< +/Contents 24 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 18 0 R /Resources << +/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] +>> /Rotate 0 /Trans << + +>> + /Type /Page +>> +endobj +14 0 obj +<< +/Contents 25 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 18 0 R /Resources << +/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] +>> /Rotate 0 /Trans << + +>> + /Type /Page +>> +endobj +15 0 obj +<< +/Contents 26 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 18 0 R /Resources << +/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] +>> /Rotate 0 /Trans << + +>> + /Type /Page +>> +endobj +16 0 obj +<< +/PageMode /UseNone /Pages 18 0 R /Type /Catalog +>> +endobj +17 0 obj +<< +/Author (\(anonymous\)) /CreationDate (D:20260303132400+00'00') /Creator (\(unspecified\)) /Keywords () /ModDate (D:20260303132400+00'00') /Producer (ReportLab PDF Library - \(opensource\)) + /Subject (\(unspecified\)) /Title (\(anonymous\)) /Trapped /False +>> +endobj +18 0 obj +<< +/Count 8 /Kids [ 7 0 R 9 0 R 10 0 R 11 0 R 12 0 R 13 0 R 14 0 R 15 0 R ] /Type /Pages +>> +endobj +19 0 obj +<< +/Filter [ /ASCII85Decode /FlateDecode ] /Length 1195 +>> +stream +Gau`R95iQE&AJ$C9Q*Z@'6*''2G:ib7oqr;lk4^qW8Z^8YJJ-#6rRdVu'9YnUWFl/)Yi-c%&c6uKnnL[R435cUeNCOL(g7B"Apjt4+I@j'U!k^G&H>0#"IfEhE\.gJ&J1qc0J-(R0`:59g3Pn;7^5Ihu\A/js0POb,6J):u6j,?&n3EM\pd.ur:E]YE>LtR2(Mt+&\'CXW_D!Ja_JG6T+oH+nr5OV-rk/9m1<1[O\!R%>*2dl1?9=ea,'54nI#1:$4,b@!'X"N6_F/c0Y]i&pnPV+7bh;q4cTaZH&4IH/1#tGK>Ib@(^7BeOY.OY:BI4!9rNl4N43mhUNt2`m+@8;]BUHK_lW=*[Bs7"Rkt:2pG#;Xa4VrEd`oe%3%CMl0a?.0aN@5:CsL((Bkbjm2*Z]-Tfq.q)dBb+"[4;F>"s+LD`:>af&cY+e7l?bmo6=0@?h?B;e^k9S=Wrmhoq.A+]\eO9CcS[kuB-YPnXrq-7,nA!57An#F+E"-X7WL55.&,,4=Uf2mtBq[9i_a,(AaLjGa2=$@&Ydd^8nOD]j@]gf@E1MSpef'G%M!=4R.<0H7/%'e!%po[&<_J46K`F0r\T4dR0^C(C?:0D4O9!A"nT>:@_Y@1.I`?SogF2W,U?(\l`UU;PlV^lu/^cQSf[j=hF=YDcSk#];pR5dF_/tADj9bW>H9lpXgY;=X-=B<_J2fREZIA)KPD-#Nf\t\3h1LWup#p!__"BPH[X3qTZ(f(lsIhT[s]>UEUmKrdWDeD&Qc2`=N@6ch#h44Is`X?C;Ai#=OBh5DY,MrVk)qYZ@QP'CtRMn#BIWRAsPIO8;A7lQklq(j)Xm*9Iq/->\E)o`7^WZLr140^2j)]dfe9/1)/2LS1eCCsdQ-YFB'9!rc`6\+YLl\Z9$iEW:pW4S8-X!=:knTR1/m=?CI=@Pg?R=UY/qDbr4nZcg,/iNpPV>23hN+h.5(=lQIdkZ30eq?PD-D&i~>endstream +endobj +20 0 obj +<< +/Filter [ /ASCII85Decode /FlateDecode ] /Length 887 +>> +stream +Gau0A9iKe#&A@7.CcS=G#YC=mM-HZ-V8KYoG^ARm0o6/CNbrUqd/M6(nh=@0=_(m6m?QXDp;_Dmb%@&mtB"VBSAIS1M2o9CgLZaDc/rfjj_<3C$IYt[kq'ubbIr#(YX,l:p(p"Kh`,*^4:$5r=&G:>r#e?0K\VZ2c;-qtS9_-qYZ1o4?9^IO`K#iD&UAQ9N]OC8b##1CS/'bT[OIsOOU\"n*gL%h-a>HJ>oA+&Qlb$F\GPFHC99sZj?EY2I4\j^US>dn-toLhG4Go[$[BprVCZK63'3WG6IQapL'&1>h7Ym6/ZN@l'2O%DWA$`HNP*'6AoYa6&@BKk&ED(=U.*"p(l7at3!d@P'?M^m$o\S)YnPUu)076g/!ncD>)F?CrL.kk%Z^.?&riX=AoK2tee&W:iNH`Q5-\7ZcRLl'4FS$q0mpI7EgV*[Wf!g2>L$`GV@C$R+$R3@e&#]LT7)bF>qF_HC4uK:F#JIpKk!@YSIdTd[3#Ga6QZScXDX'1RHP[uhLY~>endstream +endobj +21 0 obj +<< +/Filter [ /ASCII85Decode /FlateDecode ] /Length 1127 +>> +stream +Gb"/fbAu;j'Sc?E`Q=-NVQM2f(V4?6[&(;\::nV;0oFuk&s3WojQV#-9L9!hLRND8nVf3.oUhoIaRX6V":prn_Z@PZ!$AsPTF?EVT\SN<*'lZ"4>^a!e+GR)^3SB&m\"6:@(/6N_h`SCfCFj0fKKb'H7gd=#6SXG[(j&10"3"6LL;LqHbLn$#Nt#"Sn0p/+/_RkS(YRto%`24eO18502q[SoD)O"IAfXOos%\lbIpTs-(`FqqV1FQ9u>b`l1unVmH$-leq<&V?uK'HbpM^OTTQm(15J,tVn>PV)L4c@a!-,-mA!`_S#m'6fbSeB]>",5V]F"'cV!9!HeGKFYnZ&LRfn!KR*&kOJ"6hj':9(`BnlSK8[JM4%%[^0hi1V](%gUO<#(MEOd]X?g27->H"0<`%hlNl(7>Bd"pS8.E7G8t[nBZD\5BOlDVt(g)TY]DG9nLFUH"/-18t8UNkEN-(!TM$g_B$nY%Mg1WZFh`T0Omrc]a=b9?N:T4a1s<")14:-m9!ErO=?kkf*;0.a,&VXJu@#S0f?;880+W\>F\D[1`h-)JqsTUFMEa-9")5n"<+]@Cn+c3_mqWZ\@9T\V#qdh89=USfdeH#D=3-qk]63nPV6T7dC-X:g>=X*;,]O++j)Bk4G[X[/8Q-oseZn?2A-TT-'72r0q_G;oc.E?KIRWt2d3sc'C8<)MffBBj)jRbqI5D^VQKQgVo-]Ma_MNrFoq`s1#8u#qo~>endstream +endobj +22 0 obj +<< +/Filter [ /ASCII85Decode /FlateDecode ] /Length 1082 +>> +stream +Gb!;c?#Q2d'Re<2\;t?jGd]=2qUTEI(2_kT>$q-CLsnBgP@;hFrq]pA7oStIl+1RqMBZPjO3`N,NYt[+=T'2:!,!If4D2GhKG.aF#RK>*l`g,Y`tgINOEh=[5Y@C\I]B'&+C,H+CpZ;n7<218PXI^"la"^M>_)_q!t$I?n"D?a;5:X+$9Y=;?apRB*+#Fn,M/Z@$P+:&;ejS:boGi\FPQE9hofXR>NjJ2[Yq^WKMrd\)F"[F&\&-#d'iRLNQ4M%XAb@l_[k1>jbQlTUuKkHI[EfI*$@o_RV&Lb+a,'cpnl>6gr:?$]*h?l8MG;Fs,S/W8@f,D&48#V?'Xkp9B=J_hep]B^T?k_jpV)#sSo:K[[%eqTuo=qC))MN]`9r[h?MH4n^-&k-\o4]\t8Pf8$tJ-g9hOfEoeOQC5@t)t[]@1lrdmSX9tLn+L+hn$IdH?*NY?cpF`bfWVTQ-HW"P!49!7qU>L?7o8L1:)1a>$rQ9-BLg+NfSFe\Z+;L%g8`[,r%cFD@6$E#muc-T'H"/-<,Q.l.T[tRo;t+uP$;m[mdm5phGUI.fHX=nHkN-n%Nq5U3\sWbInPFoFrpaVP,iH]im/:?gBuI7HZ:MR^grSb#8fc]4Q[J%s)?nED;toJ@<"2CdFLD;[oDU"C2u72PF88/QNgF&K8oZu!c4AWAaE.Bm/>*a\nM%.9p`",$P[3&MDXellPCrAC$TQ)lWF70IIfMm@jZa;+2@/MnV#b;`^[$W~>endstream +endobj +23 0 obj +<< +/Filter [ /ASCII85Decode /FlateDecode ] /Length 1255 +>> +stream +Gatn&?#SIU'Sc)J/'`J&'f@4bkf^bdPN%j1*9VAk%E$!^e8TF?te:dG402_[rY^0]/515H2H(rLPc6kh?qG(DjZ(A^95$\_B-`%2Z`LL"4'2p;eaWf9=^'-;I+"BN@u,u.W,)!9C\\>!1d+AoHt[N?=*q#]9/:,Xg&I$MLlFSZSuS&-2[hHdgeIXM)=,V)Dl"Eink(B?ETHX,#c0Xok^X`]Nk;Mg(ql+PAV!V7N@]/Yag\B%i%MGCSB/lh^R8V3f^s2i7FUe.MChA%r+@8#8bM,B958Pu'qOrr2EKjpJQ/qg4T&@'Ao_YNDcE8)SI%<6j*iTmXXc:q`q.HqLNtQ?>.Ei!$2._H:>@c\I#^0dFOG_CcBDB`$*XJkqIoWU)sK^"8/eKOa3W$A&L1C;5P@Vt>ntX$pl6].!%;*%B*4.P2`[)3T'\_G.6Vj>j&)?n1U8S4@GrGrulV\D:2"6Y::Mo<#r^SmRVl1L6VoD2%MEAY,k#3K*?dAd>;Q$?_&8omi'H3s=l2#mdB*_Q.c:(UadIi]1#"TC+=l(I%qO*=Uj+SW.$G=crFO$2KB_)r(HiI=[O)')QssK6oW_u]!<3T+8GrX4](`"V;;"`0bKr)/p*&\rT?H_1^2qie$A1K(Q;oG2Zt1]H'd1?X.pHoh52[;R#A[,l`SZ05+no`4so>1s+$m&-Qn()-:He*P\XAM89<:%:#&%6QbpAKPnk1V1QR=IWcDasn`Zb+<+afWVJ@aN5O/r(J`U0@,[!I-XB%E!aR-Yendstream +endobj +24 0 obj +<< +/Filter [ /ASCII85Decode /FlateDecode ] /Length 1087 +>> +stream +Gatm9?$"IU&:O#N=Pa*X<9mcV$POY1B'?(9Gj:4QW34V%16s^)r;+$g'B>CC>\WPs('k8/R6FOlHE`Z`4]Ai00jI58`Qq;TG1U:Woib,n6^gqfo1PsM^]T:YI]WpiL[N1LV?FfpDC+KFU0:.SMk>4%Lm;DL3qGZ$)Q##l\DlVTJKpupXoTf(P(:Je2ea:B1*rHQ+>?aJpUU:OkMH4F[W9,Y(4VX6^,01r;E?^?N)MpkZKVUk2Q3nTOG1XZL;Q6li6)TD%,VdYK\9Wft__mMek9FHf=Eujl#ru*`dG8[cC%gt(!SQT4eOTD=#bS::(RNh0q5:\Tme(`'\RIrG/KX:QLbX?h:@,feDJa@uCC@l&qlPXS=_CC>WUmhR@HD=sjQc"*;WJoh]=$e9Li0K(f3['WrJ^Oiu[b&82oIhAInu%F=($)P2D$3UnL=/ru9j9uo7Fd&dN[%7X&]0pUQkW#Mn\8$#l`,`s\Y_l"D_,Ftfe5cq[6<0FF.J(%%mrI/"Pu-HFk*R4AI+mE/M=0*iYG;r>ZY]C=kHc'R5a5kUJ2&Oj4@6pg([Uur9r]$&$87H*aFW?E5$f&QUj'pZbFLbHX%SCMTOoYK/t8Ts0k#nX@JuT'Z\N)M`;R*HAm>85iCM.pY+8@4ieib>D:ARTdH3.Wt-S]mG-D24bj+?6AP/JdAYY?*:0Mi6Aq3?IT$XP://5p$q&,/KOYJ"(rM-E0a5Ju8q5N^sQAO9=Lo4C*r8$*lfq63_*h5J1`Oa:b8Eb^FpfSchGolXiEeQs)j3)FrWKe"IfCjR!p:k\B3F4eG;.h^'9qDXW$!eRb674N/S%K7G?$f(#8Z:-9]<`g/=.E(b@1i$Qj,endstream +endobj +25 0 obj +<< +/Filter [ /ASCII85Decode /FlateDecode ] /Length 1062 +>> +stream +Gaua=?Z4[W'ZJu..ILLH\&2=2U*Qcm"nJQaclgFKD$,O,W:I>i>9Xf>8[*[??."\$H8/qp%0e)GQfL1'ktmTE:-T>NAHQn7_n1s2KS4^R688Z>'qFHNqh`u!9P,hJUnmU@WS'tnYR+S\16$iVRAs?hb@IJ`%Tc@u(`"Jjh^0Jj=Hmhi",F+*99]'6l5"If.0eU]c*k45r[^b7-"8qsDd]#@hVQ)pOFOu,rH.c#*#i5H3Y,WDP+&'?t/,5gDi^_]"T,-lfVcs\-l`p/f6>.C*)EW0n4=oiO#Mh,E6>@ZJkaZeB@+Q,.r\WmlT#FAL.bTS.:=>hb*&@?G;gre2"/TiQ1k$EGXMgfq41NT%213Bg(M6G*8&DU^U^5Z_l3trpDIM+0HCR,f3].[9bUj_kmZ=0DLs/%r.[pn?j.JgL:7#(cC#N#n2hfl6W#LWF$ap"lCo71Ale)eB5q$G^s^bk11iY-b/Fr,(C!0d*i]E,>Da?Sq6cGff"a=GNWRa??.:9b(fEOIT2bj==(1BeA.\a8r7O,Ki=MGXd>$\t>V:F=Epkk?cX-SK&(1rbFl@BZ13KDRI;G*VAffkj%_M@u-1h-_;85C9fh6^:F4,MI\9"PpuL>K>t=%VIRL4DH&XpL6&7VqpsH+fZa]I4bITe-QP*E-G5M;$ZA4aqJ`HANXA+aE;k^JI1WX:H6JHRfe?fNo6V/PhVGHUS[NRZE!I;+tV\Lsu4PJendstream +endobj +26 0 obj +<< +/Filter [ /ASCII85Decode /FlateDecode ] /Length 1035 +>> +stream +Gau`RgQ(#J%"4bO@%WStKuT;;>@37o1>=F5?FI\C"m/6n(ro3!AL1osZUOo-PiI!MQSb(9:^@=<;PXd5W?ZJ?B^tf*C]L&%i:Ms1(GM6ZQV>8,%&:qdh^?(kRH?%qKn)i4/5Pi(_T5Ai]MFg1U]I'Bd*o<(GSH<0mBRH8-^Pd*_>=8_%^bc!S?"0BVJ?H=J1G!d&mrI%,3SlTZMg_gfmsk'Gs=kiC+Lh][b=sn%TeBDlhWbop76:1P7b-n71iJ)#Y*ckRVDpl<;(T@9"ML,<3(u[Cj)3kT@WQP%WhpH2><#'$#UM;:.`qY=nWg>4kfPLdq.2t>:f(BI-_n_3%LoV)m:jN=XF73f,M<%@m;1,_""Qb_8R$%SU>)mt9nSEm/4bWP3`D>gHMeMS4LClA->J=^8)os!UVEB_*KT&_WTFtt,%jar%h?&/;=D9J7WGMjVe>R8F7b$T>ouJJBu"UDP[STN>_!0$mcak]el[.'=)fjA(OgJ&\ja?G1"qD.g\IO"Zf=@l-h:?*nZK6pO`"UEjjSDX.+2H3E#b*X\\eOLeYMB!N6b1Sg)l"snr.-85;_UK/b\UNl'8cP=0H@:;mfr\,Hg1fM'Y^bkOFPWrt4*1k:J_"(Sh;_-q2"[f[_4/_=K1ALF7YQS`7EWd]mT6W'!gC8f8HbEF=d0Uc$;?2fN:[jCY%KRi4<\\ORP?/ane$O.1R`uCj'gGHZ,SU^['*f.^P!E#,)cn>eiVn2endstream +endobj +xref +0 27 +0000000000 65535 f +0000000061 00000 n +0000000142 00000 n +0000000249 00000 n +0000000361 00000 n +0000000476 00000 n +0000000559 00000 n +0000000664 00000 n +0000000869 00000 n +0000000946 00000 n +0000001151 00000 n +0000001357 00000 n +0000001563 00000 n +0000001769 00000 n +0000001975 00000 n +0000002181 00000 n +0000002387 00000 n +0000002457 00000 n +0000002738 00000 n +0000002846 00000 n +0000004133 00000 n +0000005111 00000 n +0000006330 00000 n +0000007504 00000 n +0000008851 00000 n +0000010030 00000 n +0000011184 00000 n +trailer +<< +/ID +[<41768306a4f0aa20cd68431a7206cfcf><41768306a4f0aa20cd68431a7206cfcf>] +% ReportLab generated PDF document -- digest (opensource) + +/Info 17 0 R +/Root 16 0 R +/Size 27 +>> +startxref +12311 +%%EOF diff --git a/Les04-TypeScript-Fundamentals/les4-huiswerk-js-converter.zip b/Les04-TypeScript-Fundamentals/les4-huiswerk-js-converter.zip index eab9f7fda31ef6e2ae8c3c46e2aa3114025846da..c2ad7bf59fd07abffa225e61078cfed263781332 100644 GIT binary patch delta 36871 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 I*)vimfEDvUr(PzoIMDU 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%0D_$8&^B9;0x{S^l4@cI2Ix*a;auFtj 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 delta 2210 zcmZ8idpy(a8{YO!80Jt!syReyuk%70A!N>GbI9bJ!-fn|smYlf`GY9XhHx1#2do}!s#{aB10WD7unkbA+VRF7@emm;1cC0F=jnfr z+fHpEQ#xX-4b*3QBdt%DeL@EY5zks52tI>eUM3~fEGb)){Q5??*wdFgIQb;3kNHa9GFWu25s z9Y~oK^VwZvukW+sB$NsC+pJY1zgM5y3X2Lih~MWDaN8Jtphdfo-D{xVIJcZo_i$gj zVzgY$0yM=J-WepHw~vdh6)q|ckK*k0&3Wz61lX>s-5%44mp~J5e1t2tYi?rm(UIfu z6Hn8s%Qc*jnJJITJSs0~b>nAqFH63o9+*0sviah$n|IQHIgqlkIFW~|H}jc#NI2s` z0EA=4YQ!({z4=QLTiN{5L{KG=d~m09v_NnDZ^~oJ3u|R?!dEL+z;W6MrP5G3HK#Zo zbUIQMXYqK%P-Bm!wO>@8TqHQMse0OZX1l+_>WTWCM+9H)%xcc<*l!KlZgRmv)PKy; zm!*sj7DSj_J#Fy!JgjM|LfP4i?MR&hBCwK_L?L<2NB7RH`^_{KlAX^63zrOAHWkRl zv)+4B-G2(4i~7|&+)pM?bb33jGzKyKw;62*3|=wuvNAzGCp*SZV#6YSTE5!5BCrCI zG7O(PkZ?sI#)?=)b$u_NN* z2FSAU$v3YdO+&5gzlDV-QNH(ZQRjor`+oS(zhTt`OtG!RCqGZ}lgF~(w2+>Ac zOyz{GEVsK4ih6HvEENCP91=i>`D9(mcmI0fR609ZztX-~Ei~#Obw@3Wdb0NWWkFAQ z9EB7t0{m3iwUCAjp3(|w4@mFy0CK2~}TxK4_hzhtzh(# z9!&3zA*$%3tId3*_~8KM=%hH?S(mi6{G$4{Pbs;pgWm`oIvKsC7G0Z87}Brr{Vo?=1(CF#Dzt=IgE9T&_u{cm~|t_wvYzQ5PHk2Q8?pA2311A$2i>V1SLAb#h((p{&`b? ze?Wx=%stW;Zdv35IG>IXPl5il8I>;`n0V$`ppaMKpw6NZF;z#;c8}NM?I#MEX0R&c z#+_?Od#t6ml3p1@SU6vMWr++w&9-Z&2R5g2f`W*zW#@pe*t_8nLy`EubqkDh8b z((>eEKYzRB?svyfNQ94{^>ln-&W?7~Cbu7fleqbU@s|ZoxSXlB!K(6-CVF=^{D3>} zx%`r4YBMvn`*i@k>p`6>b}zM({Ia^s?fsn7oHSj7hDN%Ko{h656$2lFKQWsUN76{uZOr;&RLs%*eV~e`HCZk=Szk2@9eZ}Ywbq1A z5RG9MmXOYTdc5%M=loCzMXM57Df=n7f+FJaZpf=xDbHmQzaT%XYeXO{i{f`>;#A+V z?JGs!AwgQ54Q%ZQxKO8# R5QT_BAbb$WYn9(S{sr%p5byv1