|
@@ -0,0 +1,79 @@
|
|
|
|
+# Modules selon les versions
|
|
|
|
+
|
|
|
|
+* avant TypeScript 1.5
|
|
|
|
+ * 2 types de modules: internes et externes
|
|
|
|
+ * utilisé pour des besoins différents mais avec le même nom
|
|
|
|
+* TypeScript 1.5
|
|
|
|
+ * les modules internes deviennent des "namespaces"
|
|
|
|
+ * les modules externes deviennent des "modules" tout court
|
|
|
|
+ * support de la syntaxe ES2015 import/export
|
|
|
|
+
|
|
|
|
+| Modules | Namespaces |
|
|
|
|
+|-----------------------------|--------------------|
|
|
|
|
+| organisent le code | organisent le code |
|
|
|
|
+| génération dans divers formats, pour les chargeurs | aucun chargeur nécessaire, utilise --outFile |
|
|
|
|
+| support natif dans Node au format CommonJS | aucun chargeur nécessaire, utilise --outFile |
|
|
|
|
+| support browser par des chargeurs séparés: Require.JS / System.JS | ne polluent pas l'espace de noms global |
|
|
|
|
+| syntaxe ES2015 | optimaux pour de petites applications client |
|
|
|
|
+| facilitent la réutilisation | |
|
|
|
|
+| l'avenir | |
|
|
|
|
+
|
|
|
|
+# Résolution des modules dans TS 2.2.x
|
|
|
|
+
|
|
|
|
+Apparemment pas tout à fait correcte: il y a aussi utilisation de
|
|
|
|
+`node_modules/@types` pour les imports sans chemin.
|
|
|
|
+
|
|
|
|
+## "Classic"
|
|
|
|
+### "./person" dans /Source/Multimath/player.ts
|
|
|
|
+
|
|
|
|
+1. `/Source/Multimath/person.ts`
|
|
|
|
+1. `/Source/Multimath/person.d.ts` (type definition file)
|
|
|
|
+
|
|
|
|
+### "person" dans /Source/Multimath/player.ts
|
|
|
|
+
|
|
|
|
+1. `/Source/Multimath/person.ts`
|
|
|
|
+1. `/Source/Multimath/person.d.ts`
|
|
|
|
+1. `/Source/person.ts`
|
|
|
|
+1. `/Source/person.d.ts`
|
|
|
|
+1. `/person.ts`
|
|
|
|
+1. `/person.d.ts`
|
|
|
|
+
|
|
|
|
+## "Node"
|
|
|
|
+### "./person" dans /Source/Multimath/player.ts
|
|
|
|
+
|
|
|
|
+1. `/Source/Multimath/person.ts`
|
|
|
|
+1. `/Source/Multimath/person.tsx` (equivalent de JSX en TS)
|
|
|
|
+1. `/Source/Multimath/person.d.ts` (type definition file)
|
|
|
|
+1. `/Source/Multimath/person/package.json`: s'il existe une propriété `typings` pointant vers un fichier, l'utiliser
|
|
|
|
+1. `/Source/Multimath/index.ts`
|
|
|
|
+1. `/Source/Multimath/index.tsx`
|
|
|
|
+1. `/Source/Multimath/index.d.ts`
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+### "person" dans /Source/Multimath/player.ts
|
|
|
|
+
|
|
|
|
+1. `/Source/Multimath/node_modules/person.ts`
|
|
|
|
+1. `/Source/Multimath/node_modules/person.tsx`
|
|
|
|
+1. `/Source/Multimath/node_modules/person.d.ts`
|
|
|
|
+1. `/Source/Multimath/node_modules/person/package.json#typings` (?)
|
|
|
|
+1. `/Source/Multimath/node_modules/@types/*ts[x]` (?)
|
|
|
|
+1. `/Source/Multimath/node_modules/index.ts`
|
|
|
|
+1. `/Source/Multimath/node_modules/index.tsx`
|
|
|
|
+1. `/Source/Multimath/node_modules/index.d.ts`
|
|
|
|
+1. `/Source/node_modules/person.ts`
|
|
|
|
+1. `/Source/node_modules/person.tsx`
|
|
|
|
+1. `/Source/node_modules/person.d.ts`
|
|
|
|
+1. `/Source/node_modules/person/package.json#typings`
|
|
|
|
+1. `/Source/node_modules/@types/*ts[x]` (?)
|
|
|
|
+1. `/Source/node_modules/index.ts`
|
|
|
|
+1. `/Source/node_modules/index.tsx`
|
|
|
|
+1. `/Source/node_modules/index.d.ts`
|
|
|
|
+1. `/node_modules/person.ts`
|
|
|
|
+1. `/node_modules/person.tsx`
|
|
|
|
+1. `/node_modules/person.d.ts`
|
|
|
|
+1. `/node_modules/person/package.json#typings`
|
|
|
|
+1. `/node_modules/@types/*ts[x]` (?)
|
|
|
|
+1. `/node_modules/index.ts`
|
|
|
|
+1. `/node_modules/index.tsx`
|
|
|
|
+1. `/node_modules/index.d.ts`
|
|
|
|
+1. Then start again with `.js` extension instead of `.ts[x]`.
|