åå®å šæ§ãåäžãããããã°ãšãªãã¡ã¯ã¿ãªã³ã°ã匷åããããããŒã¿ãããŒè¿œè·¡ã®åŒ·åãªææ³ã§ããTypeScriptããŒã¿ãªããŒãžãæ¢æ±ããŸãã
TypeScriptããŒã¿ãªããŒãžïŒåå®å šæ§ãåããæ å ±è¿œè·¡
ãœãããŠã§ã¢éçºãç¹ã«è€éãªã¢ããªã±ãŒã·ã§ã³ã§ã¯ãããŒã¿ã®æµãïŒã©ãããæ¥ãŠãã©ã®ããã«å€æãããæçµçã«ã©ãã«è¡ããïŒãçè§£ããããšããä¿å®æ§ããããã°ãããã³ãªãã¡ã¯ã¿ãªã³ã°ã«ãšã£ãŠéèŠã§ãã ããã§ãããŒã¿ãªããŒãžã®æŠå¿µãç»å ŽããŸãã äŒçµ±çã«ããŒã¿ãŠã§ã¢ããŠã¹ãããžãã¹ã€ã³ããªãžã§ã³ã¹ã«é¢é£ä»ããããŠããŸãããããŒã¿ãªããŒãžã¯ãç¹ã«TypeScriptã®æ¡çšãæ¡å€§ããŠããäžã§ãçŸä»£ã®ã¢ããªã±ãŒã·ã§ã³éçºã«ãããŠãŸããŸãéèŠã«ãªã£ãŠããŸãã TypeScriptã®éçåã·ã¹ãã ã¯ãåå®å šæ§ãåããããŒã¿ãªããŒãžã匷åããç¬èªã®æ©äŒãæäŸããåŸæ¥ã®ã¢ãããŒãããã倧ããªå©ç¹ãæäŸããŸãã
ããŒã¿ãªããŒãžãšã¯ïŒ
ããŒã¿ãªããŒãžãšã¯ãããŒã¿ã®ã©ã€ããµã€ã¯ã«å šäœã«ãããããŒã¿ã®èµ·æºãç§»åãããã³å€æã远跡ããããã»ã¹ãæããŸãã ããŒã¿ã®çãç«ã¡ã®ãããªãã®ã§ãèªçïŒæåã®ãœãŒã¹ïŒããæ»ïŒæçµçãªç®çå°ãŸãã¯ã¢ãŒã«ã€ãïŒãŸã§ã®æ ã®è©³çްãèšé²ããŸãã ã·ã¹ãã å ã§ããŒã¿ãã©ã®ããã«äœæã倿Žãæ¶è²»ããããã®å æ¬çãªãã¥ãŒãæäŸããŸãã æ¬è³ªçã«ã¯ãããã®ããŒã¿ã¯ã©ãããæ¥ãã®ãïŒããšãéäžã§äœãèµ·ãã£ãã®ãïŒããšãã質åã«çããŸãã
ããŒã¿ãªããŒãžã¯ã以äžã«äžå¯æ¬ ã§ãïŒ
- ãããã°ïŒãšã©ãŒã®çºçæºããããŒã¿ããã®èµ·æºãŸã§è¿œè·¡ããããšã«ãã£ãŠç¹å®ããŸãã
 - 圱é¿åæïŒããŒã¿æ§é ãŸãã¯åŠçããžãã¯ãžã®å€æŽã®æ³¢å广ãçè§£ããŸãã
 - ã³ã³ãã©ã€ã¢ã³ã¹ïŒããŒã¿ã®æ¥æŽã远跡ããããšã«ãããããŒã¿ã®ã¬ããã³ã¹ã確ä¿ããèŠå¶èŠä»¶ãæºãããŸãã
 - ãªãã¡ã¯ã¿ãªã³ã°ïŒã¢ããªã±ãŒã·ã§ã³å šäœã§ããŒã¿ãã©ã®ããã«äœ¿çšãããŠããããçè§£ããããšã«ãããå®å šã«ã³ãŒããåæ§ç¯ããŸãã
 - ããŒã¿ã®å質ïŒããŒã¿å質ã¡ããªã¯ã¹ãç£èŠããããŒã¿ãã€ãã©ã€ã³ã«æ²¿ã£ãæœåšçãªããŒã¿æŽåæ§ã®åé¡ãç¹å®ããŸãã
 
TypeScriptãšåå®å šæ§ã®åœ¹å²
TypeScriptã¯JavaScriptã®ã¹ãŒããŒã»ããã§ãããJavaScriptã®åçãªæ§è³ªã«éçåä»ãã远å ããŸãã ã€ãŸããåã¯ã³ã³ãã€ã«æã«ãã§ãã¯ããããããéçºè ã¯ãšã©ãŒãæ¬çªç°å¢ã«å°éããåã«ãéçºããã»ã¹ã®æ©ã段éã§ãšã©ãŒãæ€åºã§ããŸãã ããã¯ãåãšã©ãŒãå®è¡æã«ã®ã¿çºèŠãããããšãå€ãJavaScriptãšæ¯èŒããŠã倧ããªå©ç¹ã§ãã
åå®å šæ§ã¯ãTypeScriptã®åãã§ãã«ãŒã«ãã£ãŠåŒ·å¶ãããããŒã¿ãäžè²«ããäºæž¬å¯èœãªæ¹æ³ã§äœ¿çšãããããšãä¿èšŒããŸãã 倿°ã颿°ãã©ã¡ãŒã¿ãŒãããã³æ»ãå€ã®åãæç€ºçã«å®çŸ©ããããšã«ãããTypeScriptã¯ä»¥äžã®ãããªäžè¬çãªãšã©ãŒãé²ãã®ã«åœ¹ç«ã¡ãŸãã
- äžæ£ãªããŒã¿åã颿°ã«æž¡ãã
 - ãªããžã§ã¯ãã«ååšããªãããããã£ã«ã¢ã¯ã»ã¹ããã
 - ãµããŒããããŠããªãããŒã¿ã«å¯ŸããŠæäœãå®è¡ããã
 
ããŒã¿ãªããŒãžãšTypeScriptã®åå®å šæ§ã®çµã¿åããã¯ãã¢ããªã±ãŒã·ã§ã³ã®ä¿¡é Œæ§ãšä¿å®æ§ãå€§å¹ ã«åäžããã匷åãªçžä¹å¹æãçã¿åºããŸãã
TypeScriptããŒã¿ãªããŒãžã®å©ç¹
ããŒã¿ãªããŒãžã«TypeScriptãæŽ»çšããããšã§ãæ°å€ãã®å©ç¹ãåŸãããŸãïŒ
1. ãããã°ã®åŒ·å
åæ å ±ã䜿çšããŠããŒã¿ãããŒã远跡ããããšã«ããããããã°ãå€§å¹ ã«å®¹æã«ãªããŸãã ãšã©ãŒãçºçããå ŽåãããŒã¿ããã®èµ·æºãŸã§è¿œè·¡ããåãæ£ãããªãããããŒã¿ãäºæããªãæ¹æ³ã§å€æãããæç¹ãç¹å®ã§ããŸãã ããã«ãããåé¡ã蚺æããŠä¿®æ£ããããã«å¿ èŠãªæéãšåŽåãåæžãããŸãã
äŸïŒæ°å€ã®ãªã¹ãã®å¹³åãèšç®ãã颿°ãæ³åããŠãã ããã 颿°ãæ°å€ã§ã¯ãªãæååã®ãªã¹ããåãåã£ãå ŽåãTypeScriptã®åãã§ãã«ãŒã¯ã³ã³ãã€ã«æã«ãšã©ãŒããã©ã°ãããšã©ãŒãå®è¡æã«å°éããã®ãé²ããŸãã ãšã©ãŒãäœããã®åœ¢ã§ïŒåçã«åä»ããããJavaScriptã³ãŒããšã®çžäºäœçšãªã©ã«ããïŒããæããå ŽåããªããŒãžæ å ±ããããšã誀ã£ãããŒã¿ã®çºçæºãç¹å®ããã®ã«åœ¹ç«ã¡ãŸãã
2. ãªãã¡ã¯ã¿ãªã³ã°ã®æ¹å
ã³ãŒãã®ãªãã¡ã¯ã¿ãªã³ã°ã¯ã倿Žãæå³ãããšã©ãŒãå°å ¥ããããæ¢åã®æ©èœãå£ãããããå¯èœæ§ããããããå±éºã䌎ãå¯èœæ§ããããŸãã TypeScriptããŒã¿ãªããŒãžã䜿çšãããšãåãã§ãã«ãŒã倿Žããçããåé¢é£ã®ãšã©ãŒããã¹ãŠæ€åºããããšãçè§£ããäžã§ãèªä¿¡ãæã£ãŠã³ãŒãããªãã¡ã¯ã¿ãªã³ã°ã§ããŸãã ããŒã¿ãªããŒãžæ å ±ã¯ããªãã¡ã¯ã¿ãªã³ã°ãã¢ããªã±ãŒã·ã§ã³ã®ããŸããŸãªéšåã«äžãã圱é¿ãçè§£ããã®ã«åœ¹ç«ã¡ãŸãã
äŸïŒã¢ããªã±ãŒã·ã§ã³å šäœã§äœ¿çšãããŠãããªããžã§ã¯ãã®ããããã£ã®ååã倿ŽãããšããŸãã ããŒã¿ãªããŒãžã䜿çšãããšãããããã£ã䜿çšãããŠãããã¹ãŠã®å Žæãç°¡åã«ç¹å®ããããã«å¿ããŠæŽæ°ã§ããŸãã ãã®åŸãTypeScriptã³ã³ãã€ã©ãŒã¯ããã¹ãŠã®å€æŽãåå®å šã§ããããšã確èªããŸãã
3. ã³ãŒãã®ä¿å®æ§ã®åäž
è€éãªã¢ããªã±ãŒã·ã§ã³ãä¿å®ããã«ã¯ãããŒã¿ãããŒãçè§£ããããšãäžå¯æ¬ ã§ãã ããŒã¿ãªããŒãžã¯ãããŒã¿ãã©ã®ããã«äœ¿çšãããŠãããã®æç¢ºã§ç°¡æœãªãã¥ãŒãæäŸããã³ãŒããçè§£ããèªä¿¡ãæã£ãŠå€æŽãå ããããšã容æã«ããŸãã ããã«ãããã¢ããªã±ãŒã·ã§ã³å šäœã®ä¿å®æ§ãåäžãããã°ã®çºçãªã¹ã¯ã軜æžãããŸãã
äŸïŒæ°ããéçºè ããããžã§ã¯ãã«åå ããå ŽåãããŒã¿ãªããŒãžã䜿çšããŠãã¢ããªã±ãŒã·ã§ã³å šäœã§ããŒã¿ãã©ã®ããã«äœ¿çšãããŠãããããã°ããçè§£ã§ããŸãã ããã«ãããåŠç¿æ²ç·ãççž®ãããããè¿ éã«çç£çã«ãªãããšãã§ããŸãã
4. éçè§£æãšèªåããã¥ã¡ã³ãå
TypeScriptã®éçåã·ã¹ãã ã¯ãæœåšçãªãšã©ãŒã«ã€ããŠã³ãŒããèªåçã«åæããã³ãŒãã£ã³ã°æšæºãé©çšã§ãã匷åãªéçè§£æããŒã«ãå¯èœã«ããŸãã ããŒã¿ãªããŒãžæ å ±ããããã®ããŒã«ã«çµ±åããŠãããå æ¬çãªåæãæäŸããæœåšçãªããŒã¿ãããŒã®åé¡ãç¹å®ã§ããŸãã ããã«ãããŒã¿ãªããŒãžã䜿çšããŠãã¢ããªã±ãŒã·ã§ã³å šäœã®ããŒã¿ã®æµããèšè¿°ããããã¥ã¡ã³ããèªåçã«çæã§ããŸãã
äŸïŒãªã³ã¿ãŒãšéçè§£æããŒã«ã¯ãããŒã¿ãªããŒãžã䜿çšããŠãä»ã®ã³ã³ããŒãã³ãããã®æµãæ¹ã«åºã¥ããŠãã³ãŒãã®ç¹å®ã®æç¹ã§å€ãæªå®çŸ©ã«ãªãå¯èœæ§ãããç¶æ³ãæ€åºã§ããŸãã ãŸããããŒã¿ãªããŒãžã¯ãTypeScriptã³ãŒãèªäœããèªåçã«çæãããããŒã¿ãããŒã®å³ãäœæããã®ã«åœ¹ç«ã¡ãŸãã
5. ããŒã¿ã¬ããã³ã¹ãšã³ã³ãã©ã€ã¢ã³ã¹ã®åŒ·å
峿 ŒãªããŒã¿ã¬ããã³ã¹èŠå¶ïŒäŸïŒéèããã«ã¹ã±ã¢ïŒã®å¯Ÿè±¡ãšãªãæ¥çã§ã¯ãããŒã¿ãªããŒãžã¯ã³ã³ãã©ã€ã¢ã³ã¹ã瀺ãããã«äžå¯æ¬ ã§ãã ããŒã¿ã®èµ·æºãšå€æã远跡ããããšã«ãããããŒã¿ã責任ãæã£ãŠæºæ ããæ¹æ³ã§åŠçãããŠããããšã蚌æã§ããŸãã TypeScriptã¯ãã³ã³ãã€ã«æã®åå®çŸ©ãšããŒã¿æ€èšŒãéããŠãããã®ããŒã¿ã¬ããã³ã¹ã«ãŒã«ãé©çšããã®ã«åœ¹ç«ã¡ããããã®ã«ãŒã«ãéµå®ãããŠãããšããèªä¿¡ãé«ããŸãã
äŸïŒå人ãç¹å®ã§ããæ å ±ïŒPIIïŒããã·ã¹ãã å ã§ã®æ å šäœãéããŠé©åã«ãã¹ã¯ãŸãã¯å¿ååãããŠããããšã確èªããããšã¯ãGDPRãªã©ã®èŠå¶ãžã®æºæ ã«ãšã£ãŠéèŠã§ãã TypeScriptã®åã·ã¹ãã ã¯ãããŒã¿ãªããŒãžãšçµ±åãããŠãããPIIã远跡ãããã®å®å šãªåŠçã匷å¶ããã®ã«åœ¹ç«ã¡ãŸãã
TypeScriptããŒã¿ãªããŒãžã®å®è£
TypeScriptã§ããŒã¿ãªããŒãžãå®è£ ããã«ã¯ãããã€ãã®æ¹æ³ããããŸãïŒ
1. æç€ºçãªããŒã¿ãããŒè¿œè·¡
ãã®ã¢ãããŒãã§ã¯ãã«ã¹ã¿ã ããŒã¿æ§é ãŸãã¯é¢æ°ã䜿çšããŠãã¢ããªã±ãŒã·ã§ã³å ã®ããŒã¿ãããŒãæç€ºçã«è¿œè·¡ããŸãã ããšãã°ãããŒã¿ã®èµ·æºãšå€æãèšé²ãã`DataLineage`ã¯ã©ã¹ãäœæã§ããŸãã ããŒã¿ã倿Žããããã³ã«ã`DataLineage`ãªããžã§ã¯ããæŽæ°ããŠå€æŽãåæ ããŸãã
äŸïŒ
            
class DataLineage<T> {
  private readonly origin: string;
  private readonly transformations: string[] = [];
  private value: T;
  constructor(origin: string, initialValue: T) {
    this.origin = origin;
    this.value = initialValue;
  }
  public getValue(): T {
    return this.value;
  }
  public transform<U>(transformation: string, transformFn: (value: T) => U): DataLineage<U> {
    const newValue = transformFn(this.value);
    const newLineage = new DataLineage<U>(this.origin, newValue);
    newLineage.transformations.push(...this.transformations, transformation);
    return newLineage;
  }
  public getLineage(): { origin: string; transformations: string[] } {
    return { origin: this.origin, transformations: this.transformations };
  }
}
// Usage:
const initialData = new DataLineage("UserInput", "123");
const parsedData = initialData.transform("parseInt", (str) => parseInt(str, 10));
const multipliedData = parsedData.transform("multiplyByTwo", (num) => num * 2);
console.log(multipliedData.getValue()); // Output: 246
console.log(multipliedData.getLineage());
// Output: { origin: 'UserInput', transformations: [ 'parseInt', 'multiplyByTwo' ] }
            
          
        ããã¯éåžžã«åçŽãªäŸã§ãããããŒã¿ãšãã®å€æãæç€ºçã«è¿œè·¡ããæ¹æ³ã瀺ããŠããŸãã ãã®ã¢ãããŒãã¯ãã现ããå¶åŸ¡ãæäŸããŸãããåé·ã«ãªãå¯èœæ§ããããããªãã®ãã€ã©ãŒãã¬ãŒãã³ãŒããå¿ èŠã«ãªãå ŽåããããŸãã
2. ãã³ã¬ãŒã¿ãšã¡ã¿ããŒã¿ãªãã¬ã¯ã·ã§ã³
TypeScriptã®ãã³ã¬ãŒã¿ãšã¡ã¿ããŒã¿ãªãã¬ã¯ã·ã§ã³æ©èœã䜿çšããŠãããŒã¿ãããŒãèªåçã«è¿œè·¡ã§ããŸãã ãã³ã¬ãŒã¿ã䜿çšããŠãããŒã¿ã倿Žãã颿°ãŸãã¯ã¯ã©ã¹ã«æ³šéãä»ããããšãã§ããã¡ã¿ããŒã¿ãªãã¬ã¯ã·ã§ã³ã䜿çšããŠãå®è¡ããã倿ã«é¢ããæ å ±ãæœåºã§ããŸãã ãã®ã¢ãããŒãã¯ãå¿ èŠãªãã€ã©ãŒãã¬ãŒãã³ãŒãã®éãæžãããããŒã¿ãªããŒãžããã»ã¹ãããééçã«ããŸãã
äŸïŒäŸç€ºç - `tsconfig.json`ã§experimentalDecoratorsããã³emitDecoratorMetadataãæå¹ã«ããå¿ èŠããããŸãïŒïŒ
            
// Important:  Requires enabling experimentalDecorators and emitDecoratorMetadata in tsconfig.json
function trackTransformation(transformationName: string) {
  return function (target: any, propertyKey: string, descriptor: PropertyDescriptor) {
    const originalMethod = descriptor.value;
    descriptor.value = function (...args: any[]) {
      console.log(`Transformation: ${transformationName} applied to ${propertyKey}`);
      const result = originalMethod.apply(this, args);
      // Additional logic to store lineage information (e.g., in a database or a separate service)
      return result;
    };
    return descriptor;
  };
}
class DataProcessor {
  @trackTransformation("ToUpperCase")
  toUpperCase(data: string): string {
    return data.toUpperCase();
  }
  @trackTransformation("AppendTimestamp")
  appendTimestamp(data: string): string {
    return `${data} - ${new Date().toISOString()}`;
  }
}
const processor = new DataProcessor();
const upperCaseData = processor.toUpperCase("hello"); // Logs: Transformation: ToUpperCase applied to toUpperCase
const timestampedData = processor.appendTimestamp(upperCaseData); // Logs: Transformation: AppendTimestamp applied to appendTimestamp
console.log(timestampedData);
            
          
        ããã¯ããã³ã¬ãŒã¿ã*ã©ã®ããã«*䜿çšã§ãããã瀺ããŠããŸãã ãã ããå®éã®å®è£ ã¯ããè€éã«ãªããåã«ã³ã³ãœãŒã«ã«ãã°ãèšé²ããã®ã§ã¯ãªãããªããŒãžæ å ±ãæ ŒçŽããå¯èœæ§ããããŸãã
3. ã¢ã¹ãã¯ãæåããã°ã©ãã³ã°ïŒAOPïŒ
TypeScriptã«ã¯ãä»ã®ããã€ãã®èšèªïŒäŸïŒAspectJã䜿çšããJavaïŒã®ãããªãã€ãã£ãAOPæ©èœã¯ãããŸãããããã®æŠå¿µããšãã¥ã¬ãŒãã§ããŸãã ããã«ã¯ã颿°åŒã³åºããã€ã³ã¿ãŒã»ãããããã®åšãã«ãªããŒãžè¿œè·¡ããžãã¯ã远å ããããšãå«ãŸããŸãã ããã¯éåžžãäŸåé¢ä¿ã®æ³šå ¥ãšé¢æ°ã®ã©ããã³ã°ãéããŠè¡ãããŸãã ãã®ã¢ãããŒãã¯ããªããŒãžè¿œè·¡ããžãã¯ãäžå åããã³ãŒãã®éè€ãåé¿ããŸãã
4. ã³ãŒãçæãšASTæäœ
ããé«åºŠãªã·ããªãªã§ã¯ãã³ãŒãçæããŒã«ãŸãã¯æœè±¡æ§æããªãŒïŒASTïŒæäœã©ã€ãã©ãªã䜿çšããŠãããŒã¿ãªããŒãžè¿œè·¡ã³ãŒããTypeScriptã³ãŒãã«èªåçã«æ¿å ¥ã§ããŸãã ãã®ã¢ãããŒãã¯æå€§ã®æè»æ§ãæäŸããŸãããTypeScriptã³ã³ãã€ã©ãŒãšã³ãŒãæ§é ãããæ·±ãçè§£ããå¿ èŠããããŸãã
å®éã®ã¢ããªã±ãŒã·ã§ã³
TypeScriptããŒã¿ãªããŒãžã¯ãããŸããŸãªå®éã®ã·ããªãªã«é©çšã§ããŸãïŒ
- Eã³ããŒã¹ïŒç»é²ããæ³šæåŠçãçºéãŸã§ã®é¡§å®¢ããŒã¿ã®æµãã远跡ããŸãã ããã«ãããæ³šæå±¥è¡ããã»ã¹ã®ããã«ããã¯ãç¹å®ããããŒã¿ã®ãã©ã€ãã·ãŒã³ã³ãã©ã€ã¢ã³ã¹ã確ä¿ã§ããŸãã
 - éèãµãŒãã¹ïŒéèååŒãç£æ»ããéèããŒã¿ã®èµ·æºãšå€æã远跡ããããšã«ãããèŠå¶ã³ã³ãã©ã€ã¢ã³ã¹ã確ä¿ããŸãã ããšãã°ãäžæ£ã®å¯èœæ§ãç¹å®ããããã«ãçãããååŒã®çºçæºã远跡ããŸãã
 - ãã«ã¹ã±ã¢ïŒé»åå¥åº·èšé²ïŒEHRïŒããè«æ±ã·ã¹ãã ãŸã§ãããŸããŸãªã·ã¹ãã ã«ãããæ£è ããŒã¿ã远跡ããŠãããŒã¿ã®æŽåæ§ãšæ£è ã®ãã©ã€ãã·ãŒã確ä¿ããŸãã HIPAAã®ãããªèŠå¶ãžã®ã³ã³ãã©ã€ã¢ã³ã¹ã«ã¯ãæ£è ããŒã¿ã®æ éãªè¿œè·¡ãå¿ èŠã§ãã
 - ãµãã©ã€ãã§ãŒã³ç®¡çïŒãµãã©ã€ã€ãŒãã顧客ãžã®ååã®ç§»åã远跡ãããµãã©ã€ãã§ãŒã³ã®éææ§ãšèª¬æè²¬ä»»ã確ä¿ããŸãã
 - ããŒã¿åæãã€ãã©ã€ã³ïŒETLïŒæœåºã倿ãããŒãïŒãã€ãã©ã€ã³ãééããããŒã¿ã®å質ãç£èŠããããŒã¿å質ã®åé¡ãç¹å®ãããããããœãŒã¹ã«è¿œè·¡ããŸãã
 
èæ ®äºé ãšèª²é¡
TypeScriptããŒã¿ãªããŒãžãå®è£ ããããšã¯å°é£ãªå ŽåããããŸãïŒ
- ããã©ãŒãã³ã¹ãªãŒããŒãããïŒããŒã¿ãããŒã远跡ãããšãç¹ã«ããã©ãŒãã³ã¹ãéèŠãªã¢ããªã±ãŒã·ã§ã³ã§ã¯ãããã©ãŒãã³ã¹ãªãŒããŒããããçºçããå¯èœæ§ããããŸãã ãªããŒãžè¿œè·¡ã®ããã©ãŒãã³ã¹ãžã®åœ±é¿ã«ã€ããŠæ éã«æ€èšããå¿ èŠããããŸãã
 - è€éãïŒããŒã¿ãªããŒãžãå®è£ ãããšãã³ãŒãããŒã¹ã«è€éããå ããããšããããŸãã ããŒã¿ãªããŒãžã®å©ç¹ãšè¿œå ã®è€éãã®ãã©ã³ã¹ããšãã¢ãããŒããéžæããããšãéèŠã§ãã
 - ããŒã«ãšã€ã³ãã©ã¹ãã©ã¯ãã£ïŒããŒã¿ãªããŒãžæ å ±ãä¿åããã³ç®¡çããã«ã¯ãç¹å¥ãªããŒã«ãšã€ã³ãã©ã¹ãã©ã¯ãã£ãå¿ èŠã§ãã æ¢åã®ããŒã¿ãªããŒãžããŒã«ã䜿çšããããç¬èªã«æ§ç¯ããããšãæ€èšããŠãã ããã
 - æ¢åã·ã¹ãã ãšã®çµ±åïŒTypeScriptããŒã¿ãªããŒãžãæ¢åã·ã¹ãã ãšçµ±åããããšã¯ãç¹ã«ãããã®ã·ã¹ãã ãTypeScriptã§èšè¿°ãããŠããªãå Žåãå°é£ãªå ŽåããããŸãã TypeScriptãšéTypeScriptã·ã¹ãã éã®ã®ã£ãããåããããã®æŠç¥ãå®è£ ããå¿ èŠããããŸãã
 
çµè«
TypeScriptããŒã¿ãªããŒãžã¯ãåå®å šæ§ãåäžããããŒã¿ãããŒã远跡ããããã®åŒ·åãªææ³ã§ãã ãããã°ããªãã¡ã¯ã¿ãªã³ã°ãä¿å®æ§ãã³ã³ãã©ã€ã¢ã³ã¹ã®ç¹ã§å€§ããªå©ç¹ãæäŸããŸãã ããŒã¿ãªããŒãžã®å®è£ ã¯å°é£ãªå ŽåããããŸãããç¹ã«è€éã§ããã·ã§ã³ã¯ãªãã£ã«ã«ãªã¢ããªã±ãŒã·ã§ã³ã§ã¯ãå©ç¹ãã³ã¹ããäžåãããšããããããŸãã TypeScriptã®éçåã·ã¹ãã ãæŽ»çšããé©åãªå®è£ ã¢ãããŒããéžæããããšã§ãããä¿¡é Œæ§ãé«ããä¿å®æ§ãé«ããä¿¡é Œã§ããã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ã§ããŸãã
ãœãããŠã§ã¢ã·ã¹ãã ããŸããŸãè€éã«ãªãã«ã€ããŠãããŒã¿ãããŒãçè§£ããããšã®éèŠæ§ã¯é«ãŸãäžæ¹ã§ãã TypeScriptããŒã¿ãªããŒãžãæ¡çšããããšã¯ãå°æ¥ã«åããŠãããå ç¢ã§ä¿å®æ§ã®é«ãã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ããããã®ç©æ¥µçãªäžæ©ã§ãã
ãã®èšäºã§ã¯ãTypeScriptããŒã¿ãªããŒãžã®å æ¬çãªæŠèŠã説æããŸããã ããã§ãå®è£ æè¡ãæ¢æ±ãããããžã§ã¯ãã«é©çšãå§ããããšãã§ããŸãã ããã©ãŒãã³ã¹ãžã®åœ±é¿ãæ éã«æ€èšããç¹å®ã®ããŒãºãšãªãœãŒã¹ã«åã£ãã¢ãããŒããéžæããããšãå¿ããªãã§ãã ããã ããã°ã£ãŠãã ããïŒ