Browse Source

8.10: export and import basics.

Frederic G. MARAND 5 years ago
parent
commit
d1e845a832
4 changed files with 40 additions and 6 deletions
  1. 6 5
      app/app.ts
  2. 19 0
      app/lib/utilityfunctions.ts
  3. 14 0
      doc/modules.md
  4. 1 1
      package.json

+ 6 - 5
app/app.ts

@@ -1,9 +1,7 @@
 import {Book, DamageLogger, Librarian} from './interfaces';
 import {Category} from "./enums";
-import {
-  ReferenceItem,
-  UniversityLibrarian
-} from "./classes";
+import {ReferenceItem, UniversityLibrarian} from "./classes";
+import { CalculateLateFees as CalcFee, MaxBooksAllowed }  from './lib/utilityfunctions';
 
 export function GetAllBooks(): Book[] {
   const books = [
@@ -193,4 +191,7 @@ function classDemo() {
 }
 
 false && bookDemo();
-classDemo();
+false && classDemo();
+
+let fee = CalcFee(10);
+let max = MaxBooksAllowed(12);

+ 19 - 0
app/lib/utilityfunctions.ts

@@ -0,0 +1,19 @@
+function CalculateLateFees(daysLate: number): number {
+  return daysLate * 0.25;
+}
+
+function MaxBooksAllowed(age: number): number {
+  if (age < 12) {
+    return 3;
+  }
+  else {
+    return 10;
+  }
+}
+
+// Since it is not exported, it will be private to the namespace.
+function privateFunc(): void {
+  console.log('This is private...');
+}
+
+export { CalculateLateFees, MaxBooksAllowed };

+ 14 - 0
doc/modules.md

@@ -18,6 +18,20 @@
 | facilitent la réutilisation | |
 | l'avenir                    | |
 
+## Formats de modules et Chargeurs
+
+* TS peut émettre CommonJS (CJS), Asynchronous Module Definition (AMD) et 
+  Universal Module Definition (UMD), ainsi que `system` le format de System.JS,
+  et ES2015.
+* Le code au format UMD, qui est une combinaison de CJS et AMD, peut être chargé
+  par Node et les chargeurs AMD
+  * Node utilise nativement CommonJS
+* SystemJS supporte CJS, AMD, ES2015 (ES6), et un format propre `system`  
+* RequireJS ne supporte qu'AMD
+* Ces chargeurs étaient plus pertinents en 2016 (date du cours) qu'en 2018, où
+  Webpack a essentiellement tout remplacé dans ce domaine en combinant le
+  chargement et l'optimisation.
+
 # Résolution des modules dans TS 2.2.x
 
 Apparemment pas tout à fait correcte: il y a aussi utilisation de 

+ 1 - 1
package.json

@@ -15,7 +15,7 @@
   "main": "index.js",
   "name": "Pluralsight-GettingStartedWithTypeScript",
   "scripts": {
-    "clean": "rm -fr js/* all/*.js",
+    "clean": "rm -fr js/* app/*.js",
     "compile": "rm -fr js/* && cd app && npx tsc -p tsconfig.json",
     "start": "http-server",
     "watch": "rm -fr js/* && cd app && npx tsc --watch"