TypeScriptã®ãããã«ãã©ã³ãã£ã³ã°ææ³ãæ¢æ±ããŠãäžéæãªåãäœæããåå®å šæ§ãåäžãããæå³ããªãåã®çœ®æãé²ããŸãã å®è·µçãªå®è£ ãšé«åºŠãªãŠãŒã¹ã±ãŒã¹ãåŠã³ãŸãã
TypeScriptã®ãããã«ãã©ã³ãã£ã³ã°ïŒåå®å šæ§ã匷åããããã®äžéæãªåå®çŸ©
TypeScriptã¯ãéçåä»ããæäŸããŠããŸãããäž»ã«æ§é çåä»ãã䜿çšããŠããŸããããã¯ãåã宣èšãããååã«é¢ä¿ãªããåã圢ç¶ãæã€å Žåã«äºææ§ããããšèŠãªãããããšãæå³ããŸãã æè»æ§ãããäžæ¹ã§ãããã«ããæå³ããªãåã®çœ®æãåå®å šæ§ã®äœäžã«ã€ãªããå ŽåããããŸãã ãããã«ãã©ã³ãã£ã³ã°ïŒäžéæãªåå®çŸ©ãšãåŒã°ããŸãïŒã¯ãTypeScriptå ã§ãããå ç¢ãªåã·ã¹ãã ãå®çŸãããããã«åä»ãã«è¿ããã®ã«ããæ¹æ³ãæäŸããŸãã ãã®ã¢ãããŒãã§ã¯ãåãäžæã«ååãä»ããããŠãããã®ããã«åäœãããå·§åŠãªææ³ã䜿çšããŠãå¶çºçãªæ··åãé²ããã³ãŒãã®æ£ç¢ºæ§ãä¿èšŒããŸãã
æ§é çåä»ããšãããã«åä»ãã®çè§£
ãããã«ãã©ã³ãã£ã³ã°ã«å ¥ãåã«ãæ§é çåä»ããšãããã«åä»ãã®éããçè§£ããããšãéèŠã§ãã
æ§é çåä»ã
æ§é çåä»ãã§ã¯ã2ã€ã®åã¯ãåãæ§é ïŒã€ãŸããåãåãæã€åãããããã£ïŒãæã€å Žåã«äºææ§ããããšèŠãªãããŸãã æ¬¡ã®TypeScriptã®äŸãæ€èšããŠãã ããã
interface Kilogram { value: number; }
interface Gram { value: number; }
const kg: Kilogram = { value: 10 };
const g: Gram = { value: 10000 };
// TypeScriptã¯ãäž¡æ¹ã®åãåãæ§é ãæã€ããããããèš±å¯ããŸã
const kg2: Kilogram = g;
console.log(kg2);
`Kilogram`ãš`Gram`ã¯ç°ãªã枬å®åäœã衚ããŠããŸãããTypeScriptã¯`Gram`ãªããžã§ã¯ãã`Kilogram`倿°ã«å²ãåœãŠãããšãèš±å¯ããŠããŸããããã¯ãã©ã¡ãã`number`åã®`value`ããããã£ãæã£ãŠããããã§ãã ããã«ãããã³ãŒãã«è«ççãªãšã©ãŒãçºçããå¯èœæ§ããããŸãã
ãããã«åä»ã
å¯Ÿç §çã«ããããã«åä»ãã§ã¯ã2ã€ã®åã¯ãåãååãæã€å ŽåããŸãã¯äžæ¹ã仿¹ããæç€ºçã«æŽŸçããŠããå Žåã«ã®ã¿äºææ§ããããšèŠãªãããŸãã JavaãC#ãªã©ã®èšèªã¯ãäž»ã«ãããã«åä»ãã䜿çšããŠããŸãã TypeScriptããããã«åä»ãã䜿çšããŠããå Žåãäžèšã®äŸã§ã¯åãšã©ãŒãçºçããŸãã
TypeScriptã§ã®ãããã«ãã©ã³ãã£ã³ã°ã®å¿ èŠæ§
TypeScriptã®æ§é çåä»ãã¯ãäžè¬ã«ãã®æè»æ§ãšäœ¿ããããã®ããã«æçã§ãã ãã ããè«ççãªãšã©ãŒãé²ãããã«ã¯ãããå³å¯ãªåãã§ãã¯ãå¿ èŠãªå ŽåããããŸãã ãããã«ãã©ã³ãã£ã³ã°ã¯ãTypeScriptã®å©ç¹ãç ç²ã«ããããšãªãããã®ããå³å¯ãªãã§ãã¯ãå®çŸããããã®åé¿çãæäŸããŸãã
次ã®ã·ããªãªãæ€èšããŠãã ããã
- é貚ã®åŠçïŒ å¶çºçãªéè²šã®æ··åãé²ãããã«ã`USD`ãš`EUR`ã®éé¡ãåºå¥ããŸãã
- ããŒã¿ããŒã¹IDïŒ `UserID`ã誀ã£ãŠ`ProductID`ãäºæãããå Žæã§äœ¿çšãããªãããã«ããŸãã
- 枬å®åäœïŒ äžæ£ç¢ºãªèšç®ãé¿ããããã«ã`Meters`ãš`Feet`ãåºå¥ããŸãã
- ã»ãã¥ã¢ãªããŒã¿ïŒ æ©å¯æ å ±ã®èª€ã£ãå ¬éãé²ãããã«ããã¬ãŒã³ããã¹ãã®`Password`ãšããã·ã¥åããã`PasswordHash`ãåºå¥ããŸãã
ãããã®åã±ãŒã¹ã§ã¯ãåºã«ãªã衚çŸïŒããšãã°ãæ°å€ãŸãã¯æååïŒãäž¡æ¹ã®åã§åãã§ãããããæ§é çåä»ãã«ãã£ãŠãšã©ãŒãçºçããå¯èœæ§ããããŸãã ãããã«ãã©ã³ãã£ã³ã°ã¯ããããã®åãåºå¥ããããšã§ãåå®å šæ§ã匷å¶ããã®ã«åœ¹ç«ã¡ãŸãã
TypeScriptã§ã®ãããã«ãã©ã³ãã®å®è£
TypeScriptã§ãããã«ãã©ã³ããå®è£ ããæ¹æ³ã¯ããã€ããããŸãã 亀差åãšäžæã®ã·ã³ãã«ã䜿çšããäžè¬çã§å¹æçãªææ³ãæ¢æ±ããŸãã
亀差åãšäžæã®ã·ã³ãã«ã®äœ¿çš
ãã®ææ³ã§ã¯ãäžæã®ã·ã³ãã«ãäœæãããããåºæ¬åãšäº€å·®ãããŸãã äžæã®ã·ã³ãã«ã¯ãããã©ã³ãããšããŠæ©èœããåãæ§é ãæã€ä»ã®åãšåºå¥ããŸãã
// Kilogramãã©ã³ãã®äžæã®ã·ã³ãã«ãå®çŸ©ããŸã
const kilogramBrand: unique symbol = Symbol();
// äžæã®ã·ã³ãã«ã§ãã©ã³ãåãããKilogramåãå®çŸ©ããŸã
type Kilogram = number & { readonly [kilogramBrand]: true };
// Gramãã©ã³ãã®äžæã®ã·ã³ãã«ãå®çŸ©ããŸã
const gramBrand: unique symbol = Symbol();
// äžæã®ã·ã³ãã«ã§ãã©ã³ãåãããGramåãå®çŸ©ããŸã
type Gram = number & { readonly [gramBrand]: true };
// Kilogramå€ãäœæãããã«ããŒé¢æ°
const Kilogram = (value: number) => value as Kilogram;
// Gramå€ãäœæãããã«ããŒé¢æ°
const Gram = (value: number) => value as Gram;
const kg: Kilogram = Kilogram(10);
const g: Gram = Gram(10000);
// ããã§TypeScriptãšã©ãŒãçºçããŸã
// const kg2: Kilogram = g; // Type 'Gram' is not assignable to type 'Kilogram'.
console.log(kg, g);
説æïŒ
- `Symbol()`ã䜿çšããŠäžæã®ã·ã³ãã«ãå®çŸ©ããŸãã `Symbol()`ãåŒã³åºããã³ã«äžæã®å€ãäœæããããã©ã³ããåºå¥ãããŸãã
- `Kilogram`åãš`Gram`åãã`number`ãšãããŒãšããŠäžæã®ã·ã³ãã«ãå€ãšããŠ`true`ãå«ããªããžã§ã¯ãã®äº€å·®åãšããŠå®çŸ©ããŸãã `readonly`修食åã¯ããã©ã³ããäœæåŸã«å€æŽã§ããªãããã«ããŸãã
- ãã©ã³ãåãããåã®å€ãäœæããã«ã¯ãåã¢ãµãŒã·ã§ã³ïŒ`as Kilogram`ããã³`as Gram`ïŒãæã€ãã«ããŒé¢æ°ïŒ`Kilogram`ããã³`Gram`ïŒã䜿çšããŸãã TypeScriptã¯ãã©ã³ãåãããåãèªåçã«æšè«ã§ããªãããããããå¿ èŠã§ãã
ããã§ã`Gram`å€ã`Kilogram`倿°ã«å²ãåœãŠãããšãããšãTypeScriptã¯æ£ãããšã©ãŒããã©ã°ããŸãã ããã«ãããåå®å šæ§ã匷å¶ãããå¶çºçãªæ··åãé²ããŸãã
åå©çšã®ããã®ãžã§ããªãã¯ãã©ã³ãã£ã³ã°
åããšã«ãã©ã³ãã£ã³ã°ãã¿ãŒã³ãç¹°ãè¿ãããšãé¿ããããã«ããžã§ããªãã¯ãã«ããŒåãäœæã§ããŸãã
type Brand = K & { readonly __brand: unique symbol; };
// ãžã§ããªãã¯Brandåã䜿çšããŠKilogramãå®çŸ©ããŸã
type Kilogram = Brand;
// ãžã§ããªãã¯Brandåã䜿çšããŠGramãå®çŸ©ããŸã
type Gram = Brand;
// Kilogramå€ãäœæãããã«ããŒé¢æ°
const Kilogram = (value: number) => value as Kilogram;
// Gramå€ãäœæãããã«ããŒé¢æ°
const Gram = (value: number) => value as Gram;
const kg: Kilogram = Kilogram(10);
const g: Gram = Gram(10000);
// ããã¯åŒãç¶ãTypeScriptãšã©ãŒãåŒãèµ·ãããŸã
// const kg2: Kilogram = g; // Type 'Gram' is not assignable to type 'Kilogram'.
console.log(kg, g);
ãã®ã¢ãããŒãã¯æ§æãç°¡çŽ åãããã©ã³ãåãããåãããäžè²«ããŠå®çŸ©ããããããŸãã
é«åºŠãªãŠãŒã¹ã±ãŒã¹ãšèæ ®äºé
ãªããžã§ã¯ãã®ãã©ã³ãã£ã³ã°
ãããã«ãã©ã³ãã£ã³ã°ã¯ãæ°å€ãæååãªã©ã®ããªããã£ãåã ãã§ãªãããªããžã§ã¯ãåã«ãé©çšã§ããŸãã
interface User {
id: number;
name: string;
}
const UserIDBrand: unique symbol = Symbol();
type UserID = number & { readonly [UserIDBrand]: true };
interface Product {
id: number;
name: string;
}
const ProductIDBrand: unique symbol = Symbol();
type ProductID = number & { readonly [ProductIDBrand]: true };
// UserIDãäºæãã颿°
function getUser(id: UserID): User {
// ... IDã§ãŠãŒã¶ãŒããã§ããããå®è£
return {id: id, name: "Example User"};
}
const userID = 123 as UserID;
const productID = 456 as ProductID;
const user = getUser(userID);
// ã³ã¡ã³ããå€ããšãšã©ãŒãçºçããŸã
// const user2 = getUser(productID); // Argument of type 'ProductID' is not assignable to parameter of type 'UserID'.
console.log(user);
ããã«ãããäž¡æ¹ãæçµçã«æ°å€ãšããŠè¡šãããŠããŠãã`ProductID`ã`UserID`ãäºæãããå Žæã§èª€ã£ãŠæž¡ãããã®ãé²ããŸãã
ã©ã€ãã©ãªãšå€éšåãšã®é£æº
ãã©ã³ãåãããåãæäŸããªãå€éšã©ã€ãã©ãªãŸãã¯APIã䜿çšããå Žåãåã¢ãµãŒã·ã§ã³ã䜿çšããŠæ¢åã®å€ãããã©ã³ãåãããåãäœæã§ããŸãã ãã ãããããè¡ãå Žåã¯æ³šæãå¿ èŠã§ããããã¯ãåºæ¬çã«å€ããã©ã³ãåãããåã«æºæ ããŠãããšäž»åŒµããŠããããããããå®éã«åœãŠã¯ãŸãããšã確èªããå¿ èŠããããŸãã
// APIããUserIDãè¡šãæ°å€ãåãåããšä»®å®ããŸã
const rawUserID = 789; // å€éšãœãŒã¹ããã®æ°å€
// çã®æ°å€ãããã©ã³ãåãããUserIDãäœæããŸã
const userIDFromAPI = rawUserID as UserID;
ã©ã³ã¿ã€ã ã«é¢ããèæ ®äºé
TypeScriptã®ãããã«ãã©ã³ãã£ã³ã°ã¯ãçŽç²ã«ã³ã³ãã€ã«æã®æ§é ã§ããããšã«æ³šæããããšãéèŠã§ãã ãã©ã³ãïŒäžæã®ã·ã³ãã«ïŒã¯ã³ã³ãã€ã«äžã«æ¶å»ããããããã©ã³ã¿ã€ã ã®ãªãŒããŒãããã¯ãããŸããã ãã ããããã¯ã©ã³ã¿ã€ã ã®åãã§ãã¯ã«ãã©ã³ãã䜿çšã§ããªãããšãæå³ããŸãã ã©ã³ã¿ã€ã ã®åãã§ãã¯ãå¿ èŠãªå Žåã¯ãã«ã¹ã¿ã åã¬ãŒããªã©ã®è¿œå ã®ã¡ã«ããºã ãå®è£ ããå¿ èŠããããŸãã
ã©ã³ã¿ã€ã æ€èšŒã®ããã®åã¬ãŒã
ãã©ã³ãåãããåã®ã©ã³ã¿ã€ã æ€èšŒãå®è¡ããã«ã¯ãã«ã¹ã¿ã åã¬ãŒããäœæã§ããŸãã
function isKilogram(value: number): value is Kilogram {
// å®éã®ã·ããªãªã§ã¯ãããã°ã©ã ã®æå¹ãªç¯å²å
ã«ããããšã確èªãããªã©ã
// ããã«è¿œå ã®ãã§ãã¯ã远å ããå ŽåããããŸãã
return typeof value === 'number';
}
const someValue: any = 15;
if (isKilogram(someValue)) {
const kg: Kilogram = someValue;
console.log("Value is a Kilogram:", kg);
} else {
console.log("Value is not a Kilogram");
}
ããã«ãããã©ã³ã¿ã€ã ã§å€ã®åãå®å šã«çµã蟌ã¿ã䜿çšããåã«ãã©ã³ãåãããåã«æºæ ããŠããããšã確èªã§ããŸãã
ãããã«ãã©ã³ãã£ã³ã°ã®å©ç¹
- 匷åãããåå®å šæ§ïŒ æå³ããªãåã®çœ®æãé²ããè«ççãªãšã©ãŒã®ãªã¹ã¯ã軜æžããŸãã
- ã³ãŒãã®æç¢ºæ§ã®åäžïŒ åºã«ãªã衚çŸãåãã§ããããŸããŸãªåãæç€ºçã«åºå¥ããããšã§ãã³ãŒããããèªã¿ããããçè§£ããããããŸãã
- ãããã°æéã®ççž®ïŒ ã³ã³ãã€ã«æã«åé¢é£ã®ãšã©ãŒããã£ãããããããã°äžã®æéãšåŽåãç¯çŽããŸãã
- ã³ãŒãã®ä¿¡é Œæ§ã®åäžïŒ ããå³å¯ãªåã®å¶çŽã匷å¶ããããšã«ãããã³ãŒãã®æ£ç¢ºæ§ã«å¯Ÿããä¿¡é Œãé«ããŸãã
ãããã«ãã©ã³ãã£ã³ã°ã®å¶éäºé
- ã³ã³ãã€ã«æã®ã¿ïŒ ãã©ã³ãã¯ã³ã³ãã€ã«äžã«æ¶å»ããããããã©ã³ã¿ã€ã ã®åãã§ãã¯ã¯æäŸãããŸããã
- åã¢ãµãŒã·ã§ã³ãå¿ èŠïŒ ãã©ã³ãåãããåãäœæããã«ã¯ãå€ãã®å Žåãåã¢ãµãŒã·ã§ã³ãå¿ èŠã§ããããã¯ã誀ã£ãŠäœ¿çšãããšåãã§ãã¯ããã€ãã¹ããå¯èœæ§ããããŸãã
- ãã€ã©ãŒãã¬ãŒãã®å¢å ïŒ ãã©ã³ãåãããåã®å®çŸ©ãšäœ¿çšã«ãããã³ãŒãã«ãã€ã©ãŒãã¬ãŒãã远å ãããå¯èœæ§ããããŸãããããã¯ãžã§ããªãã¯ãã«ããŒåã§è»œæžã§ããŸãã
ãããã«ãã©ã³ãã䜿çšããããã®ãã¹ããã©ã¯ãã£ã¹
- ãžã§ããªãã¯ãã©ã³ãã£ã³ã°ã䜿çšããïŒ ãã€ã©ãŒãã¬ãŒããåæžããäžè²«æ§ã確ä¿ããããã«ããžã§ããªãã¯ãã«ããŒåãäœæããŸãã
- åã¬ãŒãã䜿çšããïŒ å¿ èŠã«å¿ããŠãã©ã³ã¿ã€ã æ€èšŒã®ããã«ã«ã¹ã¿ã åã¬ãŒããå®è£ ããŸãã
- ãã©ã³ããè³¢æã«é©çšããïŒ ãããã«ãã©ã³ãã£ã³ã°ãé床ã«äœ¿çšããªãã§ãã ããã è«ççãªãšã©ãŒãé²ãããã«ãããå³å¯ãªåãã§ãã¯ã匷å¶ããå¿ èŠãããå Žåã«ã®ã¿é©çšããŠãã ããã
- ãã©ã³ããæç¢ºã«ããã¥ã¡ã³ãåããïŒ åãã©ã³ãåãããåã®ç®çãšäœ¿çšæ³ãæç¢ºã«ããã¥ã¡ã³ãåããŸãã
- ããã©ãŒãã³ã¹ãèæ ®ããïŒ ã©ã³ã¿ã€ã ã³ã¹ãã¯æå°éã§ãããé床ã®äœ¿çšã«ããã³ã³ãã€ã«æéãå¢å ããå¯èœæ§ããããŸãã å¿ èŠã«å¿ããŠãããã¡ã€ã«ããŠæé©åããŸãã
ããŸããŸãªæ¥çããã³ã¢ããªã±ãŒã·ã§ã³ã§ã®äŸ
ãããã«ãã©ã³ãã£ã³ã°ã¯ãããŸããŸãªãã¡ã€ã³ã§ã¢ããªã±ãŒã·ã§ã³ãèŠã€ããŸãã
- éèã·ã¹ãã ïŒ äžæ£ãªãã©ã³ã¶ã¯ã·ã§ã³ãšèšç®ãé²ãããã«ãããŸããŸãªé貚ïŒUSDãEURãGBPïŒãšå£åº§ã¿ã€ãïŒæ®éé éãåœåº§é éïŒãåºå¥ããŸãã ããšãã°ãéè¡ã¢ããªã±ãŒã·ã§ã³ã§ã¯ãæ®éé éå£åº§ã§ã®ã¿å©æ¯èšç®ãå®è¡ãããç°ãªãé貚ã®å£åº§éã§è³éã転éãããšãã«é貚æç®ãæ£ããé©çšãããããã«ããããã«åã䜿çšããå ŽåããããŸãã
- Eã³ããŒã¹ãã©ãããã©ãŒã ïŒ ããŒã¿ç Žæãšã»ãã¥ãªãã£ã®è匱æ§ãåé¿ããããã«ã補åIDã顧客IDãæ³šæIDãåºå¥ããŸãã 顧客ã®ã¯ã¬ãžããã«ãŒãæ å ±ã誀ã£ãŠè£œåã«å²ãåœãŠãããšãæ³åããŠãã ããããããã«åã¯ããã®ãããªæ²æšãªãšã©ãŒãé²ãã®ã«åœ¹ç«ã¡ãŸãã
- ãã«ã¹ã±ã¢ã¢ããªã±ãŒã·ã§ã³ïŒ æ£ããããŒã¿é¢é£ä»ããä¿èšŒããæ£è èšé²ã®å¶çºçãªæ··åãé²ãããã«ãæ£è IDãå»åž«IDãäºçŽIDãåé¢ããŸãã ããã¯ãæ£è ã®ãã©ã€ãã·ãŒãšããŒã¿æŽåæ§ãç¶æããããã«éåžžã«éèŠã§ãã
- ãµãã©ã€ãã§ãŒã³ç®¡çïŒ ååãæ£ç¢ºã«è¿œè·¡ããããžã¹ãã£ãã¯ãšã©ãŒãé²ãããã«ãå庫IDãåºè·IDã補åIDãåºå¥ããŸãã ããšãã°ãåºè·ãæ£ããå庫ã«é éãããåºè·å ã®è£œåãæ³šæãšäžèŽããããšã確èªããŸãã
- IoTïŒã¢ãã®ã€ã³ã¿ãŒãããïŒã·ã¹ãã ïŒ é©åãªããŒã¿åéãšå¶åŸ¡ãä¿èšŒããããã«ãã»ã³ãµãŒIDãããã€ã¹IDããŠãŒã¶ãŒIDãåºå¥ããŸãã ããã¯ãã¹ããŒãããŒã ãªãŒãã¡ãŒã·ã§ã³ãç£æ¥çšå¶åŸ¡ã·ã¹ãã ãªã©ãã»ãã¥ãªãã£ãšä¿¡é Œæ§ãæåªå ãããã·ããªãªã§ç¹ã«éèŠã§ãã
- ã²ãŒã ïŒ ã²ãŒã ããžãã¯ã匷åããæªçšãé²ãããã«ãæŠåšIDããã£ã©ã¯ã¿ãŒIDãã¢ã€ãã IDãåºå¥ããŸãã åçŽãªééãã«ããããã¬ã€ã€ãŒãNPCå°çšã®ã¢ã€ãã ãè£ åã§ããããã«ãªããã²ãŒã ã®ãã©ã³ã¹ã厩ããå¯èœæ§ããããŸãã
ãããã«ãã©ã³ãã£ã³ã°ã®ä»£æ¿æ¡
ãããã«ãã©ã³ãã£ã³ã°ã¯åŒ·åãªææ³ã§ãããä»ã®ã¢ãããŒãã¯ç¹å®ã®ç¶æ³ã§åæ§ã®çµæãéæã§ããŸãã
- ã¯ã©ã¹ïŒ ãã©ã€ããŒãããããã£ãæã€ã¯ã©ã¹ã䜿çšãããšãç°ãªãã¯ã©ã¹ã®ã€ã³ã¹ã¿ã³ã¹ã¯æ¬è³ªçã«ç°ãªããããããçšåºŠã®ãããã«åä»ããæäŸã§ããŸãã ãã ãããã®ã¢ãããŒãã¯ãããã«ãã©ã³ãã£ã³ã°ãããåé·ã«ãªãå¯èœæ§ãããããã¹ãŠã®ã±ãŒã¹ã«é©ããŠãããšã¯éããŸããã
- åæåïŒ TypeScriptã®åæåã䜿çšãããšãç¹å®ã®éãããäžé£ã®å¯èœãªå€ã«å¯ŸããŠãã©ã³ã¿ã€ã ã§ããçšåºŠã®ãããã«åä»ããæäŸãããŸãã
- ãªãã©ã«åïŒ æååãŸãã¯æ°å€ãªãã©ã«åã䜿çšãããšã倿°ã®å¯èœãªå€ãå¶çŽã§ããŸããããã®ã¢ãããŒãã§ã¯ãããã«ãã©ã³ãã£ã³ã°ãšåãã¬ãã«ã®åå®å šæ§ã¯æäŸãããŸããã
- å€éšã©ã€ãã©ãªïŒ `io-ts`ãªã©ã®ã©ã€ãã©ãªã¯ãã©ã³ã¿ã€ã ã®åãã§ãã¯ãšæ€èšŒæ©èœãæäŸããŸãããããã䜿çšããŠãããå³å¯ãªåã®å¶çŽã匷å¶ã§ããŸãã ãã ãããããã®ã©ã€ãã©ãªã¯ã©ã³ã¿ã€ã ã®äŸåé¢ä¿ã远å ããããããã¹ãŠã®ã±ãŒã¹ã§å¿ èŠãªããã§ã¯ãããŸããã
çµè«
TypeScriptãããã«ãã©ã³ãã£ã³ã°ã¯ãäžéæãªåå®çŸ©ãäœæããããšã«ãããåå®å šæ§ã匷åããè«ççãªãšã©ãŒãé²ãããã®åŒ·åãªæ¹æ³ãæäŸããŸãã çã®ãããã«åä»ãã®ä»£ããã«ã¯ãªããŸããããTypeScriptã³ãŒãã®å ç¢æ§ãšä¿å®æ§ãå€§å¹ ã«åäžãããããšãã§ããå®çšçãªåé¿çãæäŸããŸãã ãããã«ãã©ã³ãã£ã³ã°ã®ååãçè§£ãããããè³¢æã«é©çšããããšã§ãããä¿¡é Œæ§ãé«ãããšã©ãŒã®ãªãã¢ããªã±ãŒã·ã§ã³ãäœæã§ããŸãã
ãããžã§ã¯ãã§ãããã«ãã©ã³ãã£ã³ã°ã䜿çšãããã©ãããæ±ºå®ããéã«ã¯ãåå®å šæ§ãã³ãŒãã®è€éããã©ã³ã¿ã€ã ã®ãªãŒããŒãããã®éã®ãã¬ãŒããªããèæ ®ããããšãå¿ããªãã§ãã ããã
ãã¹ããã©ã¯ãã£ã¹ãçµã¿èŸŒã¿ãä»£æ¿æ¡ãæ éã«æ€èšããããšã§ããããã«ãã©ã³ãã£ã³ã°ã掻çšããŠãããã¯ãªãŒã³ã§ãããä¿å®ãããããããå ç¢ãªTypeScriptã³ãŒããäœæã§ããŸãã åå®å šæ§ã®åãåãå ¥ããããåªãããœãããŠã§ã¢ãæ§ç¯ããŠãã ããïŒ