# 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]`.