TypeScriptã§ãªãœãŒã¹æé©åãå®çŸãåå®å šæ§ã掻çšããŠå¹çæ§ããã°åæžãã³ãŒãä¿å®æ§ãåäžãããæ¹æ³ã解説ããŸãã
TypeScriptãªãœãŒã¹æé©åïŒåå®å šæ§ã«ããå¹çæ§ã®åäž
ãœãããŠã§ã¢éçºãçµ¶ããé²åããäžã§ããªãœãŒã¹å©çšã®æé©åã¯æéèŠèª²é¡ã§ããJavaScriptã®ã¹ãŒããŒã»ããã§ããTypeScriptã¯ããã®ç®æšãéæããããã®åŒ·åãªããŒã«ãšãã¯ããã¯ãæäŸããŸããéçåã·ã¹ãã ãšé«åºŠãªã³ã³ãã€ã©æ©èœã掻çšããããšã«ãããéçºè ã¯ã¢ããªã±ãŒã·ã§ã³ã®ããã©ãŒãã³ã¹ãå€§å¹ ã«åäžããããã°ãæžãããå šäœçãªã³ãŒãä¿å®æ§ãæ¹åã§ããŸãããã®å æ¬çãªã¬ã€ãã§ã¯ãTypeScriptã³ãŒããæé©åããããã®äž»èŠãªæŠç¥ã説æããåå®å šæ§ã«ããå¹çæ§ã«çŠç¹ãåœãŠãŠããŸãã
ãªãœãŒã¹æé©åã®éèŠæ§ãçè§£ãã
ãªãœãŒã¹æé©åã¯ãã³ãŒããé«éåããã ãã§ãªããæç¶å¯èœã§ã¹ã±ãŒã©ãã«ããã€ä¿å®æ§ã®é«ãã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ããããšã§ããæé©åãäžååãªã³ãŒãã¯ã以äžã«ã€ãªããå¯èœæ§ããããŸãã
- ã¡ã¢ãªæ¶è²»éã®å¢å ïŒã¢ããªã±ãŒã·ã§ã³ãå¿ èŠä»¥äžã«å€ãã®RAMãæ¶è²»ããããã©ãŒãã³ã¹ã®äœäžãæœåšçãªã¯ã©ãã·ã¥ã«ã€ãªããå¯èœæ§ããããŸãã
 - å®è¡é床ã®äœäžïŒéå¹ççãªã¢ã«ãŽãªãºã ãšããŒã¿æ§é ã¯ãå¿çæéã«å€§ããªåœ±é¿ãäžããå¯èœæ§ããããŸãã
 - ãšãã«ã®ãŒæ¶è²»éã®å¢å ïŒãªãœãŒã¹ãå€ãæ¶è²»ããã¢ããªã±ãŒã·ã§ã³ã¯ãã¢ãã€ã«ããã€ã¹ã®ããããªãŒå¯¿åœãæ¶èããããµãŒããŒã³ã¹ããå¢å ãããå¯èœæ§ããããŸãã
 - è€éãã®å¢å€§ïŒçè§£ãšä¿å®ãå°é£ãªã³ãŒãã¯ãå€ãã®å Žåãããã©ãŒãã³ã¹ã®ããã«ããã¯ãšãã°ã«ã€ãªãããŸãã
 
ãªãœãŒã¹æé©åã«çŠç¹ãåœãŠãããšã§ãéçºè ã¯ããå¹ççã§ä¿¡é Œæ§ãé«ããã³ã¹ãå¹çã®é«ãã¢ããªã±ãŒã·ã§ã³ãäœæã§ããŸãã
ãªãœãŒã¹æé©åã«ãããTypeScriptã®åœ¹å²
TypeScriptã®éçåã·ã¹ãã ã¯ããªãœãŒã¹æé©åã«é¢ããŠããã€ãã®å©ç¹ãæäŸããŸãã
- æ©æã®ãšã©ãŒæ€åºïŒTypeScriptã®ã³ã³ãã€ã©ã¯ãéçºäžã«åé¢é£ã®ãšã©ãŒãç¹å®ããããããå®è¡æã«äŒæããã®ãé²ããŸããããã«ãããäºæããªãåäœãã¯ã©ãã·ã¥ã®ãªã¹ã¯ãæžãããªãœãŒã¹ã®ç¡é§ãçããŸãã
 - ã³ãŒãã®ä¿å®æ§ã®åäžïŒå泚éã«ãããã³ãŒãã®çè§£ãšãªãã¡ã¯ã¿ãªã³ã°ã容æã«ãªããŸããããã«ãããããã©ãŒãã³ã¹ã®ããã«ããã¯ãç¹å®ããä¿®æ£ããããã»ã¹ãç°¡çŽ åãããŸãã
 - ããŒã«ã®ãµããŒãã®åŒ·åïŒTypeScriptã®åã·ã¹ãã ã¯ãã³ãŒãè£å®ããªãã¡ã¯ã¿ãªã³ã°ãéçè§£æãªã©ããã匷åãªIDEæ©èœãå¯èœã«ããŸãããããã®ããŒã«ã¯ãéçºè ãæœåšçãªããã©ãŒãã³ã¹ã®åé¡ãç¹å®ããã³ãŒãããã广çã«æé©åããã®ã«åœ¹ç«ã¡ãŸãã
 - ããåªããã³ãŒãçæïŒTypeScriptã³ã³ãã€ã©ã¯ãææ°ã®èšèªæ©èœãšã¿ãŒã²ããç°å¢ãå©çšãããæé©åãããJavaScriptã³ãŒããçæã§ããŸãã
 
TypeScriptãªãœãŒã¹æé©åã®ããã®äž»èŠãªæŠç¥
以äžã«ãTypeScriptã³ãŒããæé©åããããã®äž»èŠãªæŠç¥ãããã€ã瀺ããŸãã
1. åæ³šéã®å¹æçãªæŽ»çš
åæ³šéã¯ãTypeScriptã®åã·ã¹ãã ã®èŠã§ãããããã广çã«äœ¿çšããããšã§ãã³ãŒãã®æç¢ºããå€§å¹ ã«åäžãããã³ã³ãã€ã©ãããç©æ¥µçãªæé©åãå®è¡ã§ããããã«ãªããŸãã
äŸïŒ
// åæ³šéãªã
function add(a, b) {
  return a + b;
}
// åæ³šéãã
function add(a: number, b: number): number {
  return a + b;
}
2çªç®ã®äŸã§ã¯ãåæ³šé: numberã䜿çšããŠããã©ã¡ãŒã¿aãšbãæ°å€ã§ããã颿°ãæ°å€ãè¿ãããšãæç€ºçã«æå®ããŠããŸããããã«ãããã³ã³ãã€ã©ã¯æ©æã«åãšã©ãŒãæ€åºããããå¹ççãªã³ãŒããçæã§ããŸãã
å®è·µçãªæŽå¯ïŒã³ã³ãã€ã©ã«ã§ããã ãå€ãã®æ å ±ãæäŸããããã«ãåžžã«å泚éã䜿çšããŠãã ãããããã«ãããã³ãŒãã®å質ãåäžããã ãã§ãªãããã广çãªæé©åãå¯èœã«ãªããŸãã
2. ã€ã³ã¿ãŒãã§ãŒã¹ãšåã®æŽ»çš
ã€ã³ã¿ãŒãã§ãŒã¹ãšåã䜿çšãããšãã«ã¹ã¿ã ããŒã¿æ§é ãå®çŸ©ããåå¶çŽãé©çšã§ããŸããããã«ããããšã©ãŒãæ©æã«æ€åºããã³ãŒãã®ä¿å®æ§ãåäžãããããšãã§ããŸãã
äŸïŒ
interface User {
  id: number;
  name: string;
  email: string;
}
type Product = {
  id: number;
  name: string;
  price: number;
};
function displayUser(user: User) {
  console.log(`User: ${user.name} (${user.email})`);
}
function calculateDiscount(product: Product, discountPercentage: number): number {
  return product.price * (1 - discountPercentage / 100);
}
ãã®äŸã§ã¯ãUserã€ã³ã¿ãŒãã§ãŒã¹ãšProductåã¯ããŠãŒã¶ãŒãªããžã§ã¯ããšè£œåãªããžã§ã¯ãã®æ§é ãå®çŸ©ããŠããŸããdisplayUser颿°ãšcalculateDiscount颿°ã¯ããããã®åã䜿çšããŠãæ£ããããŒã¿ãåãåããæåŸ
ãããçµæãè¿ãããšãä¿èšŒããŸãã
å®è·µçãªæŽå¯ïŒæç¢ºãªããŒã¿æ§é ãå®çŸ©ããåå¶çŽãé©çšããããã«ãã€ã³ã¿ãŒãã§ãŒã¹ãšåã䜿çšããŠãã ãããããã«ããããšã©ãŒãæ©æã«æ€åºããã³ãŒãã®ä¿å®æ§ãåäžãããããšãã§ããŸãã
3. ããŒã¿æ§é ãšã¢ã«ãŽãªãºã ã®æé©å
ããã©ãŒãã³ã¹ã«ãšã£ãŠãé©åãªããŒã¿æ§é ãšã¢ã«ãŽãªãºã ãéžæããããšãäžå¯æ¬ ã§ãã以äžãèæ ®ããŠãã ããã
- é å vs. ãªããžã§ã¯ãïŒé åºä»ãããããªã¹ãã«ã¯é åã䜿çšããããŒãšå€ã®ãã¢ã«ã¯ãªããžã§ã¯ãã䜿çšããŸãã
 - ã»ãã vs. é åïŒå¹ççãªã¡ã³ããŒã·ãããã¹ãã«ã¯ã»ããã䜿çšããŸãã
 - ããã vs. ãªããžã§ã¯ãïŒããŒãæååãŸãã¯ã·ã³ãã«ã§ã¯ãªãããŒãšå€ã®ãã¢ã«ã¯ãããã䜿çšããŸãã
 - ã¢ã«ãŽãªãºã ã®è€éãïŒå¯èœãªéãäœãæéãšç©ºéã®è€éããæã€ã¢ã«ãŽãªãºã ãéžæããŸãã
 
äŸïŒ
// éå¹ççïŒã¡ã³ããŒã·ãããã¹ãã«é
åã䜿çšãã
const myArray = [1, 2, 3, 4, 5];
const valueToCheck = 3;
if (myArray.includes(valueToCheck)) {
  console.log("Value exists in the array");
}
// å¹ççïŒã¡ã³ããŒã·ãããã¹ãã«ã»ããã䜿çšãã
const mySet = new Set([1, 2, 3, 4, 5]);
const valueToCheck = 3;
if (mySet.has(valueToCheck)) {
  console.log("Value exists in the set");
}
ãã®äŸã§ã¯ãã¡ã³ããŒã·ãããã¹ãã«Setã䜿çšããæ¹ããé
åã䜿çšãããããå¹ççã§ãããªããªããSet.has()ã¡ãœããã®æéèšç®éã¯O(1)ã§ããã®ã«å¯ŸããArray.includes()ã¡ãœããã®æéèšç®éã¯O(n)ã§ããããã§ãã
å®è·µçãªæŽå¯ïŒããŒã¿æ§é ãšã¢ã«ãŽãªãºã ã®ããã©ãŒãã³ã¹ãžã®åœ±é¿ãæ éã«æ€èšããŠãã ãããç¹å®ã®ãŠãŒã¹ã±ãŒã¹ã«æé©ãªãªãã·ã§ã³ãéžæããŠãã ããã
4. ã¡ã¢ãªå²ãåœãŠã®æå°å
éå°ãªã¡ã¢ãªå²ãåœãŠã¯ãããã©ãŒãã³ã¹ã®äœäžãšã¬ããŒãžã³ã¬ã¯ã·ã§ã³ã®ãªãŒããŒãããã«ã€ãªããå¯èœæ§ããããŸããäžèŠãªãªããžã§ã¯ããšé åã®äœæãé¿ããå¯èœãªéãæ¢åã®ãªããžã§ã¯ããåå©çšããŸãã
äŸïŒ
// éå¹ççïŒåååŸ©ã§æ°ããé
åãäœæãã
function processData(data: number[]) {
  const results: number[] = [];
  for (let i = 0; i < data.length; i++) {
    results.push(data[i] * 2);
  }
  return results;
}
// å¹ççïŒå
ã®é
åãã€ã³ãã¬ãŒã¹ã§å€æŽãã
function processData(data: number[]) {
  for (let i = 0; i < data.length; i++) {
    data[i] *= 2;
  }
  return data;
}
2çªç®ã®äŸã§ã¯ãprocessData颿°ã¯å
ã®é
åãã€ã³ãã¬ãŒã¹ã§å€æŽããæ°ããé
åã®äœæãåé¿ããŠããŸããããã«ãããã¡ã¢ãªå²ãåœãŠãåæžãããããã©ãŒãã³ã¹ãåäžããŸãã
å®è·µçãªæŽå¯ïŒæ¢åã®ãªããžã§ã¯ããåå©çšããäžèŠãªãªããžã§ã¯ããšé åã®äœæãé¿ããããšã§ãã¡ã¢ãªå²ãåœãŠãæå°éã«æããŸãã
5. ã³ãŒãåå²ãšé å»¶èªã¿èŸŒã¿
ã³ãŒãåå²ãšé å»¶èªã¿èŸŒã¿ã䜿çšãããšãç¹å®ã®æç¹ã§å¿ èŠãªã³ãŒãã®ã¿ãèªã¿èŸŒãããšãã§ããŸããããã«ãããã¢ããªã±ãŒã·ã§ã³ã®åæããŒãæéãå€§å¹ ã«ççž®ããå šäœçãªããã©ãŒãã³ã¹ãåäžãããããšãã§ããŸãã
äŸïŒ
TypeScriptã§ã®åçã€ã³ããŒãã®äœ¿çšïŒ
async function loadModule() {
  const module = await import('./my-module');
  module.doSomething();
}
// ã¢ãžã¥ãŒã«ã䜿çšããå¿
èŠããããšãã«loadModule()ãåŒã³åºããŸã
ãã®ãã¯ããã¯ã䜿çšãããšãå®éã«å¿
èŠã«ãªããŸã§my-moduleã®èªã¿èŸŒã¿ãé
ãããããšãã§ããã¢ããªã±ãŒã·ã§ã³ã®åæããŒãæéãççž®ã§ããŸãã
å®è·µçãªæŽå¯ïŒã³ãŒãåå²ãšé å»¶èªã¿èŸŒã¿ãå®è£ ããŠãã¢ããªã±ãŒã·ã§ã³ã®åæããŒãæéãççž®ããå šäœçãªããã©ãŒãã³ã¹ãåäžãããŸãã
6. `const`ããã³`readonly`ããŒã¯ãŒãã®æŽ»çš
constããã³readonlyã䜿çšãããšãã³ã³ãã€ã©ãšã©ã³ã¿ã€ã ç°å¢ãã倿°ãšããããã£ã®äžå€æ§ã«é¢ããä»®å®ãè¡ãã®ã«åœ¹ç«ã¡ãæœåšçãªæé©åã«ã€ãªããå¯èœæ§ããããŸãã
äŸïŒ
const PI: number = 3.14159;
interface Config {
  readonly apiKey: string;
}
const config: Config = {
  apiKey: 'YOUR_API_KEY'
};
// PIãŸãã¯config.apiKeyã倿Žããããšãããšãã³ã³ãã€ã«æãšã©ãŒãçºçããŸã
// PI = 3.14; // ãšã©ãŒïŒå®æ°ã§ããããã'PI'ã«å²ãåœãŠãããšã¯ã§ããŸããã
// config.apiKey = 'NEW_API_KEY'; // ãšã©ãŒïŒèªã¿åãå°çšããããã£ã§ããããã'apiKey'ã«å²ãåœãŠãããšã¯ã§ããŸããã
PIãconstãšããŠãapiKeyãreadonlyãšããŠå®£èšããããšã«ãããåæååŸã«ãããã®å€ã倿Žããªãããšãã³ã³ãã€ã©ã«äŒããŠããŸããããã«ãããã³ã³ãã€ã©ã¯ããã®ç¥èã«åºã¥ããŠæé©åãå®è¡ã§ããŸãã
å®è·µçãªæŽå¯ïŒåå²ãåœãŠããªã倿°ã®å Žåã¯constããåæååŸã«å€æŽããªãããããã£ã®å Žåã¯readonlyã䜿çšããŸããããã«ãããã³ãŒãã®æç¢ºããåäžããæœåšçãªæé©åãå¯èœã«ãªããŸãã
7. ãããã¡ã€ãªã³ã°ãšããã©ãŒãã³ã¹ãã¹ã
ãããã¡ã€ãªã³ã°ãšããã©ãŒãã³ã¹ãã¹ãã¯ãããã©ãŒãã³ã¹ã®ããã«ããã¯ãç¹å®ããŠå¯ŸåŠããããã«äžå¯æ¬ ã§ãããããã¡ã€ãªã³ã°ããŒã«ã䜿çšããŠãã³ãŒãã®ããŸããŸãªéšåã®å®è¡æéãæž¬å®ããæé©åãå¿ èŠãªé åãç¹å®ããŸããããã©ãŒãã³ã¹ãã¹ãã¯ãã¢ããªã±ãŒã·ã§ã³ãããã©ãŒãã³ã¹èŠä»¶ãæºãããŠããããšã確èªããã®ã«åœ¹ç«ã¡ãŸãã
ããŒã«ïŒChrome DevToolsãNode.js InspectorãLighthouseã
å®è·µçãªæŽå¯ïŒã³ãŒãã宿çã«ãããã¡ã€ãªã³ã°ããããã©ãŒãã³ã¹ãã¹ããå®è¡ããŠãããã©ãŒãã³ã¹ã®ããã«ããã¯ãç¹å®ããŠå¯ŸåŠããŸãã
8. ã¬ããŒãžã³ã¬ã¯ã·ã§ã³ã®çè§£
JavaScriptïŒãããã£ãŠTypeScriptïŒã¯ãèªåã¬ããŒãžã³ã¬ã¯ã·ã§ã³ã䜿çšããŠããŸããã¬ããŒãžã³ã¬ã¯ã·ã§ã³ã®ä»çµã¿ãçè§£ããããšã§ãã¡ã¢ãªãªãŒã¯ãæå°éã«æããããã©ãŒãã³ã¹ãåäžãããã³ãŒããèšè¿°ã§ããŸãã
äž»ãªæŠå¿µïŒ
- å°éå¯èœæ§ïŒãªããžã§ã¯ãã¯ãã«ãŒããªããžã§ã¯ãïŒããšãã°ãã°ããŒãã«ãªããžã§ã¯ãïŒããå°éã§ããªããªã£ããšãã«ã¬ããŒãžã³ã¬ã¯ã·ã§ã³ãããŸãã
 - ã¡ã¢ãªãªãŒã¯ïŒã¡ã¢ãªãªãŒã¯ã¯ããªããžã§ã¯ããäžèŠã«ãªã£ããããŸã å°éå¯èœã§ãããã¬ããŒãžã³ã¬ã¯ã·ã§ã³ã劚ããããŠããå Žåã«çºçããŸãã
 - 埪ç°åç §ïŒåŸªç°åç §ã¯ãäžèŠã«ãªã£ãå Žåã§ãããªããžã§ã¯ããã¬ããŒãžã³ã¬ã¯ã·ã§ã³ãããã®ãé²ãå¯èœæ§ããããŸãã
 
äŸïŒ
// 埪ç°åç
§ãäœæãã
let obj1: any = {};
let obj2: any = {};
obj1.reference = obj2;
obj2.reference = obj1;
// obj1ãšobj2ã䜿çšãããªããªã£ãŠããäºãã«å°éå¯èœã§ãããããã¬ããŒãžã³ã¬ã¯ã·ã§ã³ãããŸãã
// 埪ç°åç
§ãå£ãã«ã¯ãåç
§ãnullã«èšå®ããŸã
obj1.reference = null;
obj2.reference = null;
å®è·µçãªæŽå¯ïŒã¬ããŒãžã³ã¬ã¯ã·ã§ã³ã«æ³šæããã¡ã¢ãªãªãŒã¯ãšåŸªç°åç §ã®äœæãé¿ããŠãã ããã
9. ããã¯ã°ã©ãŠã³ãã¿ã¹ã¯ãžã®Web Workerã®æŽ»çš
Web Workerã䜿çšãããšãã¡ã€ã³ã¹ã¬ããããããã¯ããããšãªããããã¯ã°ã©ãŠã³ãã§JavaScriptã³ãŒããå®è¡ã§ããŸããããã«ãããã¢ããªã±ãŒã·ã§ã³ã®å¿çæ§ãåäžããé·æéå®è¡ãããã¿ã¹ã¯äžã«ããªãŒãºããã®ãé²ãããšãã§ããŸãã
äŸïŒ
// main.ts
const worker = new Worker('worker.ts');
worker.postMessage({ task: 'calculatePrimeNumbers', limit: 100000 });
worker.onmessage = (event) => {
  console.log('玠æ°:', event.data);
};
// worker.ts
// ãã®ã³ãŒãã¯å¥ã®ã¹ã¬ããã§å®è¡ãããŸã
self.onmessage = (event) => {
  const { task, limit } = event.data;
  if (task === 'calculatePrimeNumbers') {
    const primes = calculatePrimeNumbers(limit);
    self.postMessage(primes);
  }
};
function calculatePrimeNumbers(limit: number): number[] {
  // 玠æ°èšç®ã®å®è£
  const primes: number[] = [];
    for (let i = 2; i <= limit; i++) {
        let isPrime = true;
        for (let j = 2; j <= Math.sqrt(i); j++) {
            if (i % j === 0) {
                isPrime = false;
                break;
            }
        }
        if (isPrime) {
            primes.push(i);
        }
    }
    return primes;
}
å®è·µçãªæŽå¯ïŒWeb Workerã䜿çšããŠãé·æéå®è¡ãããã¿ã¹ã¯ãããã¯ã°ã©ãŠã³ãã§å®è¡ããã¡ã€ã³ã¹ã¬ããããããã¯ãããªãããã«ããŸãã
10. ã³ã³ãã€ã©ãªãã·ã§ã³ãšæé©åãã©ã°
TypeScriptã³ã³ãã€ã©ã¯ãã³ãŒãçæãšæé©åã«åœ±é¿ãäžããããã€ãã®ãªãã·ã§ã³ãæäŸããŠããŸãããããã®ãã©ã°ãé©åã«äœ¿çšããŠãã ããã
- `--target` (es5, es6, esnext):ç¹å®ã®ã©ã³ã¿ã€ã ç°å¢ã«åãããŠæé©åããããã«ãé©åãªã¿ãŒã²ããJavaScriptããŒãžã§ã³ãéžæããŸããæ°ããããŒãžã§ã³ïŒesnextãªã©ïŒãã¿ãŒã²ããã«ãããšãããè¯ãããã©ãŒãã³ã¹ã®ããã«ææ°ã®èšèªæ©èœã掻çšã§ããŸãã
 - `--module` (commonjs, esnext, umd):ã¢ãžã¥ãŒã«ã·ã¹ãã ãæå®ããŸããESã¢ãžã¥ãŒã«ã¯ããã³ãã©ãŒã«ããããªãŒã·ã§ã€ãã³ã°ïŒãããã³ãŒãã®åé€ïŒãå¯èœã«ããŸãã
 - `--removeComments`:ãã¡ã€ã«ãµã€ãºãæžããããã«ãåºåJavaScriptããã³ã¡ã³ããåé€ããŸãã
 - `--sourceMap`:ãããã°çšã®ãœãŒã¹ããããçæããŸããéçºã«ã¯åœ¹ç«ã¡ãŸããããã¡ã€ã«ãµã€ãºãæžãããããã©ãŒãã³ã¹ãåäžãããããã«ãæ¬çªç°å¢ã§ã¯ç¡å¹ã«ããŸãã
 - `--strict`:åå®å šæ§ãšæœåšçãªæé©åã®æ©äŒãåäžãããããã«ããã¹ãŠã®å³æ Œãªåãã§ãã¯ãªãã·ã§ã³ãæå¹ã«ããŸãã
 
å®è·µçãªæŽå¯ïŒTypeScriptã³ã³ãã€ã©ãªãã·ã§ã³ãæ éã«æ§æããŠãã³ãŒãçæãæé©åããããªãŒã·ã§ã€ãã³ã°ãªã©ã®é«åºŠãªæ©èœãæå¹ã«ããŸãã
æé©åãããTypeScriptã³ãŒããç¶æããããã®ãã¹ããã©ã¯ãã£ã¹
ã³ãŒãã®æé©åã¯ãäžåºŠããã®äœæ¥ã§ã¯ãããŸãããç¶ç¶çãªããã»ã¹ã§ãã以äžã«ãæé©åãããTypeScriptã³ãŒããç¶æããããã®ãã¹ããã©ã¯ãã£ã¹ãããã€ã瀺ããŸãã
- 宿çãªã³ãŒãã¬ãã¥ãŒïŒå®æçãªã³ãŒãã¬ãã¥ãŒã宿œããŠãæœåšçãªããã©ãŒãã³ã¹ã®ããã«ããã¯ãšæ¹åã®äœå°ãç¹å®ããŸãã
 - èªåãã¹ãïŒããã©ãŒãã³ã¹ã®æé©åãååž°ãåŒãèµ·ãããªãããšã確èªããããã«ãèªåãã¹ããå®è£ ããŸãã
 - ç£èŠïŒæ¬çªç°å¢ã§ã®ã¢ããªã±ãŒã·ã§ã³ã®ããã©ãŒãã³ã¹ãç£èŠããŠãããã©ãŒãã³ã¹ã®åé¡ãç¹å®ããŠå¯ŸåŠããŸãã
 - ç¶ç¶çãªåŠç¿ïŒãªãœãŒã¹æé©åã®ããã®ææ°ã®TypeScriptæ©èœãšãã¹ããã©ã¯ãã£ã¹ãåžžã«ææ¡ããŠãã ããã
 
çµè«
TypeScriptã¯ããªãœãŒã¹æé©åã®ããã®åŒ·åãªããŒã«ãšãã¯ããã¯ãæäŸããŸããéçåã·ã¹ãã ãé«åºŠãªã³ã³ãã€ã©æ©èœããã¹ããã©ã¯ãã£ã¹ã掻çšããããšã§ãéçºè ã¯ã¢ããªã±ãŒã·ã§ã³ã®ããã©ãŒãã³ã¹ãå€§å¹ ã«åäžããããã°ãæžãããå šäœçãªã³ãŒãä¿å®æ§ãæ¹åã§ããŸãããªãœãŒã¹æé©åã¯ãç¶ç¶çãªåŠç¿ãç£èŠãããã³æ¹åãå¿ èŠãšããç¶ç¶çãªããã»ã¹ã§ããããšãå¿ããªãã§ãã ããããããã®ååãåãå ¥ããããšã§ãå¹ççã§ä¿¡é Œæ§ãé«ããã¹ã±ãŒã©ãã«ãªTypeScriptã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ã§ããŸãã