6.2 āĻŽāĻĄāĻŋāĻāĻ˛ āĻĢāĻ°āĻŽā§āĻ¯āĻžāĻ
āĻāĻžāĻāĻĒāĻ¸ā§āĻā§āĻ°āĻŋāĻĒā§āĻ āĻŦā§āĻļ āĻāĻŋāĻā§ āĻŽāĻĄāĻŋāĻāĻ˛ āĻĢāĻ°āĻŽā§āĻ¯āĻžāĻ āĻ¸āĻžāĻĒā§āĻ°ā§āĻ āĻāĻ°ā§āĨ¤ āĻāĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻāĻ˛ā§āĻ¯ā§āĻāĻ¯ā§āĻā§āĻ¯ āĻšāĻā§āĻā§,
- AMD
- CommonJs
- ES6
āĻāĻžāĻāĻĒāĻ¸ā§āĻā§āĻ°āĻŋāĻĒā§āĻ āĻāĻ° tsconfig.json  āĻ āĻāĻŽāĻ°āĻž āĻŽāĻĄāĻŋāĻāĻ˛ āĻĢāĻ°āĻŽā§āĻ¯āĻžāĻ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° āĻāĻ°ā§ āĻĻāĻŋāĻ¤ā§ āĻĒāĻžāĻ°āĻŋāĨ¤
{
"compilerOptions": {
"module": "commonjs"
}
}
āĻāĻŽāĻ°āĻž āĻāĻāĻ¨ āĻāĻĒāĻ°ā§āĻā§āĻ¤ āĻŽāĻĄāĻŋāĻāĻ˛ āĻĢāĻ°āĻŽā§āĻ¯āĻžāĻ āĻā§āĻ˛ā§ āĻ¨āĻŋā§ā§ āĻāĻ˛ā§āĻāĻ¨āĻž āĻāĻ°āĻŦā§āĨ¤
AMD
AMD āĻāĻāĻāĻŋ āĻĄāĻŋāĻĢāĻžāĻāĻ¨ āĻĢāĻžāĻāĻļāĻ¨ āĻĒā§āĻ°ā§āĻāĻžāĻāĻĄ āĻāĻ°ā§ āĻŽāĻĄāĻŋāĻāĻ˛ āĻĄāĻŋāĻĢāĻžāĻāĻ¨ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯āĨ¤ āĻāĻāĻŋ āĻŽā§āĻ˛āĻ¤ RequireJS āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋ āĻāĻŽāĻĒā§āĻ˛āĻŋāĻŽā§āĻ¨ā§āĻ āĻāĻ°ā§āĻā§āĨ¤Â
āĻĄāĻŋāĻĢāĻžāĻāĻ¨Â āĻĢāĻžāĻāĻļāĻ¨āĻāĻŋ āĻāĻ°āĻā§āĻŽā§āĻ¨ā§āĻ āĻšāĻŋāĻ¸ā§āĻŦā§ āĻĒā§āĻ°āĻĨāĻŽā§ āĻŽāĻĄāĻŋāĻāĻ˛ āĻāĻ° āĻ¨āĻžāĻŽ, āĻāĻ°āĻĒāĻ° āĻĄāĻŋāĻĒā§āĻ¨ā§āĻĄā§āĻ¨ā§āĻ āĻŽāĻĄāĻŋāĻāĻ˛ā§āĻ°Â āĻāĻāĻāĻŋ āĻ ā§āĻ¯āĻžāĻ°ā§ āĻāĻŦāĻ āĻāĻ° āĻĒāĻ° āĻāĻāĻāĻŋ āĻĢā§āĻ¯āĻžāĻā§āĻāĻ°āĻŋ āĻĢāĻžāĻāĻļāĻ¨ āĻ¨ā§ā§āĨ¤
// AMD module.
define("amdCounterModule", ["dependencyModule1", "dependencyModule2"],
(dependencyModule1, dependencyModule2) => {
let count = 0;
const increase = () => ++count;
const reset = () => {
count = 0;
console.log("Count is reset.");
};
return {
increase,
reset
};
});
āĻŽāĻĄāĻŋāĻāĻ˛ āĻāĻŽā§āĻĒā§āĻ°ā§āĻ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻŋ require āĻĢāĻžāĻāĻļāĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§āĨ¤ āĻ¯ā§āĻŽāĻ¨ āĻāĻĒāĻ°ā§āĻ° āĻŽāĻĄāĻŋāĻāĻ˛ āĻāĻŋ āĻ¯āĻĻāĻŋ āĻāĻŽāĻ°āĻž āĻāĻŽā§āĻĒā§āĻ°ā§āĻ āĻāĻ°āĻ¤ā§ āĻāĻžāĻ āĻ¤āĻžāĻšāĻ˛ā§,
require(["amdCounterModule"], amdCounterModule => {
amdCounterModule.increase();
amdCounterModule.reset();
});
CommonJs
āĻāĻāĻŋāĻ AMD āĻāĻ° āĻŽāĻ¤ āĻĄāĻŋāĻĢāĻžāĻāĻ¨ āĻāĻŦāĻ āĻāĻ¨āĻāĻŋāĻāĻŽ āĻĒā§āĻ¯āĻžāĻāĻžāĻ°ā§āĻ¨āĨ¤ NodeJs āĻ āĻāĻāĻŋ āĻĄāĻŋāĻĢāĻ˛ā§āĻ āĻāĻžāĻŦā§ āĻāĻŽāĻĒā§āĻ˛āĻŋāĻŽā§āĻ¨ā§āĻ āĻāĻ°āĻž āĻāĻā§āĨ¤
āĻāĻāĻžāĻ¨ā§ āĻāĻā§āĻ¸āĻĒā§āĻ°ā§āĻ āĻāĻ° āĻāĻ¨ā§āĻ¯ module āĻāĻŦāĻ exports āĻā§āĻ¯āĻžāĻ°āĻŋā§ā§āĻŦāĻ˛ āĻĒā§āĻ°ā§āĻāĻžāĻāĻĄ āĻāĻ°āĻž āĻšā§ āĻāĻ° āĻāĻŽā§āĻĒā§āĻ°ā§āĻ āĻāĻ° āĻāĻ¨ā§āĻ¯ require āĻĢāĻžāĻāĻļāĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻšā§āĨ¤
// commonJSCounterModule.js.
let count = 0;
const increase = () => ++count;
const reset = () => {
count = 0;
console.log("Count is reset.");
};
module.exports = {
increase,
reset
};
āĻāĻĒāĻ°ā§āĻ° āĻā§āĻĄāĻāĻŋāĻ¤ā§ module.exports āĻĻāĻŋā§ā§ āĻĄāĻŋāĻā§āĻ˛āĻžāĻ°ā§āĻļāĻ¨ āĻā§āĻ˛ā§ āĻāĻā§āĻ¸āĻĒā§āĻ°ā§āĻ āĻāĻ°āĻž āĻšā§ā§āĻā§āĨ¤
āĻāĻāĻ¨ āĻāĻŽāĻ°āĻž āĻ¯āĻĻāĻŋ āĻāĻ āĻŽāĻĄāĻŋāĻāĻ˛ āĻĨā§āĻā§ āĻāĻŽā§āĻĒā§āĻ°ā§āĻ āĻāĻ°āĻ¤ā§ āĻāĻžāĻ āĻ¤āĻžāĻšāĻ˛ā§:
const commonJSCounterModule = require("./commonJSCounterModule");
commonJSCounterModule.increase();
commonJSCounterModule.reset();
ES6 module
āĻāĻāĻŋ āĻŽā§āĻ˛āĻ¤ ECMAScript 2015 āĻāĻ° āĻŽāĻĄāĻŋāĻāĻ˛ āĻĢāĻ°āĻŽā§āĻ¯āĻžāĻāĨ¤ āĻāĻāĻžāĻ¨ā§ āĻāĻŽā§āĻĒā§āĻ°ā§āĻ/āĻāĻā§āĻ¸āĻĒā§āĻ°ā§āĻ āĻāĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻŋāĻ¨āĻā§āĻ¯āĻžāĻā§āĻ¸ āĻšāĻŋāĻ¸ā§āĻŦā§ āĻ¯āĻĨāĻžāĻā§āĻ°āĻŽā§ import āĻāĻŦāĻ export āĻā§āĻā§āĻžāĻ°ā§āĻĄ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻšā§āĨ¤
// esCounterModule.js
let count = 0;
export const increase = () => ++count;
export const reset = () => {
count = 0;
console.log("Count is reset.");
};
āĻāĻāĻžāĻ¨ā§ esCounterModule āĻŽāĻĄāĻŋāĻāĻ˛ āĻĨā§āĻā§ āĻāĻā§āĻ¸āĻĒā§āĻ°ā§āĻ āĻāĻ°ā§ āĻĻā§āĻāĻžāĻ¨ā§ āĻšā§ā§āĻā§āĨ¤Â
āĻāĻā§āĻ¸āĻĒā§āĻ°ā§āĻ āĻĻā§āĻ āĻāĻžāĻŦā§ āĻāĻ°āĻž āĻ¯āĻžā§ Named export āĻāĻŦāĻ default exportāĨ¤ default export āĻ¨āĻŋā§ā§ āĻāĻŽāĻ°āĻž āĻĒāĻ°āĻŦāĻ°ā§āĻ¤āĻŋāĻ¤ā§ āĻŦāĻŋāĻ¸ā§āĻ¤āĻžāĻ°āĻŋāĻ¤ āĻāĻ˛ā§āĻāĻ¨āĻž āĻāĻ°āĻŦā§āĨ¤
āĻāĻāĻāĻāĻžāĻŦā§ āĻāĻŽā§āĻĒā§āĻ°ā§āĻ āĻāĻ°āĻžāĻ° āĻā§āĻˇā§āĻ¤ā§āĻ°ā§:
// example-import.js
import { increase, reset } from "./esCounterModule.mjs";
increase();
reset();
ECMAScript 2020 āĻĨā§āĻā§ import āĻĢāĻžāĻāĻļāĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻĄāĻžāĻāĻ¨āĻžāĻŽāĻŋāĻ āĻāĻžāĻŦā§ āĻāĻŽā§āĻĒā§āĻ°ā§āĻ āĻāĻ°āĻž āĻ¯āĻžā§āĨ¤ āĻāĻā§āĻˇā§āĻ¤ā§āĻ°ā§ import āĻĢāĻžāĻāĻļāĻ¨ āĻĒā§āĻ°āĻŽāĻŋāĻ¸ āĻ°āĻŋāĻāĻžāĻ°ā§āĻ¨ āĻāĻ°ā§āĨ¤ āĻ¤āĻžāĻ āĻ¨āĻ°āĻŽāĻžāĻ˛ āĻĒā§āĻ°āĻŽāĻŋāĻ¸ā§āĻ°Â āĻŽāĻ¤Â then āĻŽā§āĻĨāĻĄ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻāĻŽāĻ°āĻž āĻŽāĻĄāĻŋāĻāĻ˛ āĻĄāĻžāĻāĻ¨āĻžāĻŽāĻŋāĻ āĻāĻžāĻŦā§ āĻāĻ¨āĻāĻŋāĻāĻŽ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°āĻŋāĨ¤
// example-import.js
import("./esCounterModule.js").then(({ increase, reset }) => {
increase();
reset();
});
āĻā§āĻ¨ āĻāĻāĻāĻž āĻŽāĻĄāĻŋāĻāĻ˛ āĻ˛ā§āĻāĻŋ āĻ˛ā§āĻĄ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻ§āĻ°āĻ¨ā§āĻ° āĻĄāĻžāĻāĻ¨āĻžāĻŽāĻŋāĻ āĻāĻŽā§āĻĒā§āĻ°ā§āĻ āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻžāĻā§ āĻĻā§ā§āĨ¤ āĻā§āĻ¨ āĻāĻāĻāĻŋ āĻŦā§ āĻĢāĻžāĻāĻļāĻ¨ āĻ āĻĨāĻŦāĻž āĻĢāĻŋāĻāĻžāĻ° āĻāĻ¨ā§āĻĄāĻŋāĻļāĻ¨āĻžāĻ˛āĻŋ āĻ˛ā§āĻĄ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯āĻ āĻĄāĻžāĻāĻ¨āĻžāĻŽāĻŋāĻ āĻ˛ā§āĻĄāĻŋāĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻšā§āĨ¤
āĻ¯ā§āĻšā§āĻ¤ā§ āĻāĻāĻž āĻāĻāĻāĻŋ āĻĒā§āĻ°āĻŽāĻŋāĻ¸ āĻ°āĻŋāĻāĻžāĻ°ā§āĻ¨ āĻāĻ°ā§ āĻ¤āĻžāĻ āĻāĻŽāĻ°āĻž āĻāĻāĻžāĻ¨ā§ await āĻā§āĻā§āĻžāĻ°ā§āĻĄāĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°āĻŋāĨ¤
āĻ¯ā§āĻ¸āĻŦ āĻŦā§āĻ°āĻžāĻāĻāĻžāĻ°-āĻ ES module āĻ¸āĻžāĻĒā§āĻ°ā§āĻ āĻāĻ°ā§āĻ¨āĻž āĻ¸ā§āĻāĻžāĻ¨ā§ āĻāĻāĻŋ āĻā§āĻ°āĻžāĻ¨ā§āĻ¸āĻĒāĻžāĻāĻ˛ āĻāĻ°ā§ āĻ āĻ¨ā§āĻ¯ āĻā§āĻ¨ āĻĢāĻ°āĻŽā§āĻ¯āĻžāĻ āĻ¯ā§āĻŽāĻ¨-CommonJS/Node.js, AMD/RequireJS, System/SystemJS āĻāĻ¤ā§āĻ¯āĻžāĻĻāĻŋāĻ¤ā§ āĻ¨ā§āĻā§āĻž āĻšā§āĨ¤
āĻāĻā§āĻˇā§āĻ¤ā§āĻ°ā§ tsconfig.json āĻ āĻā§āĻ°āĻžāĻ¨ā§āĻ¸āĻĒāĻžāĻāĻ˛āĻžāĻ° āĻšāĻŋāĻ¸ā§āĻŦā§ āĻ¯ā§āĻāĻž āĻ¸ā§āĻ āĻāĻ°āĻž āĻĨāĻžāĻā§ āĻ¸ā§ āĻĢāĻ°āĻŽā§āĻ¯āĻžāĻā§āĻ āĻā§āĻ°āĻžāĻ¨ā§āĻ¸āĻĒāĻžāĻāĻ˛ āĻšā§āĨ¤
āĻāĻāĻžā§āĻžāĻ āĻāĻžāĻāĻĒāĻ¸ā§āĻā§āĻ°āĻŋāĻĒā§āĻÂ āĻ module āĻāĻŦāĻ namespace āĻ¨āĻžāĻŽā§ āĻĻā§āĻāĻāĻŋ āĻā§āĻā§āĻžāĻ°ā§āĻĄ āĻāĻā§āĨ¤
module Counter {
let count = 0;
export const increase = () => ++count;
export const reset = () => {
count = 0;
console.log("Count is reset.");
};
}
namespace Counter {
let count = 0;
export const increase = () => ++count;
export const reset = () => {
count = 0;
console.log("Count is reset.");
};
}
āĻ āĻĻā§āĻāĻāĻžāĻ āĻā§āĻ°āĻžāĻ¨ā§āĻ¸āĻĒāĻžāĻāĻ˛ āĻšā§ā§ āĻāĻžāĻāĻžāĻ¸ā§āĻā§āĻ°āĻŋāĻĒā§āĻ āĻ āĻŦāĻā§āĻā§āĻ āĻšā§ā§ āĻ¯āĻžā§āĨ¤