ã¯ã©ã¹ãäœæããããã®éçãã¡ã¯ããªã¡ãœãããšããã以å€ã®å Žåã¯ãã©ã€ããŒãã§ãããã®ã¯ã©ã¹ã®ã³ã³ã¹ãã©ã¯ã¿ã䜿çšããŠããã¡ã¯ããªã¡ãœããã䜿çšããªãéãã¯ã©ã¹ãã€ã³ã¹ã¿ã³ã¹åã§ããªãããã«ããããšã¯ãããªãäžè¬çãªãã¿ãŒã³ã ãšæããŸãã
ãã¹ãŠã®ãã¯ã©ã¹ãã¯å®éã«ã¯åãªãé¢æ°ã§ãããåŒã³åºãäžå¯èœãªé¢æ°ãªã©ã¯ãªããããã¯ã©ã¹ã衚瀺ãããŠããå Žæã§ããã°ã©ãã§ãnew
æŒç®åã䜿çšã§ããŸãã
ãã ããã¯ã©ã¹ãéå ¬éïŒã¢ãžã¥ãŒã«ãªã©ïŒã«ããŠãã¯ã©ã¹ã®ã€ã³ã¿ãŒãã§ã€ã¹ããšã¯ã¹ããŒãããããšã¯ã§ããŸãã ããã¯ãã€ã³ã¿ãŒãã§ãŒã¹ãã¯ã©ã¹ãæ¡åŒµã§ãããšããäºå®ãæªçšããŸããããããã¯çŽæ¥ã€ã³ã¹ã¿ã³ã¹åãæ¡åŒµãã§ããŸããã
åãããšãã¯ã©ã¹ã®ãã©ã€ããŒãé¢æ°ã«ãåœãŠã¯ãŸããŸãããïŒ ãã©ã€ããŒãã³ã³ã¹ãã©ã¯ã¿ãŒã«ã¢ã¯ã»ã¹ããããã«ã³ã³ãã€ã«ãšã©ãŒãçºçããªãã£ãçç±ãããããŸããã
@billccn ãJSãèš±å¯ãããšé衚瀺ã«ã§ããªããªããŸããã§ãªã¯ãšã¹ãã
TSãšçæãããJSã§å®å
šã«ä¿è·ããããšãšãJSãçæãããŸã§ä¿è·ããããšã§ãã ããªãã説æããããã«ãå®å
šãªä¿è·ã¯äžå¯èœã§ãããã³ã³ãã€ã©ã«ãã£ãŠç°ãªãå¯èŠæ§ããã§ãã¯ãããããšã¯å¯èœã§ããã¯ãã§ãã
å¯èŠæ§ä¿®é£Ÿåãæ°ã«å
¥ããªãå Žåã¯ãã©ãã§ãããã©ã«ãã®ãããªãã¯ã䜿çšããŠãã ããããã®æŠå¿µã圹ç«ã€ãšæããããã®ã¯ä»ã«ããããŸãã
ããããã©ã€ããŒããã£ãŒã«ããã³ã³ãã€ã©ãã§ãã¯ãšããŠã®ã¿å®è£ ãããŠããå Žåã¯ãããããã³ã³ã¹ãã©ã¯ã¿ã«æ¡åŒµã§ãããšæããŸãã ãã ããã€ã³ã¿ãŒãã§ã€ã¹ããŒã¹ã®åé¿çã¯ãã§ã«æ©èœããŠããŸãã
ïŒ+1ïŒã³ãŒããèªã¿ãããããããã«ããã°ã©ããŒã«ãã¡ã¯ããªã¡ãœããã䜿çšããããå ŽåããããŸãã ã€ã³ã¿ãŒãã§ã€ã¹ããŒã¹ã®åé¿çã¯ãã³ãŒãã«å€ãã®ãã€ãºãçºçãããŸãã
ã³ã³ãã€ã©ãã§ãã¯ã ããéã ãšæããŸãã
æ¿èªæžã¿ãPRã®æ¿èª
æ確ã«ããããã«ããã©ã€ããŒãã³ã³ã¹ãã©ã¯ã¿ãŒãæã€ã¯ã©ã¹ã¯æ¡åŒµå¯èœã§ããããïŒ
ã€ãŸããããã¯ãšã©ãŒãã¹ããŒããŸããïŒ
class A {
private constructor() {
}
}
class B extends A { // Should there be an error at A saying: "Cannot extend private class 'A'"?
}
ãããããªããç§ãã¡ã¯ãããèš±å¯ããŸããïŒ
class A {
protected constructor(a?: any)
private constructor() {
}
}
class B extends A { // No error since 'A' has a non-private constructor
}
JS以å€ã®éçºè ã®çµéšãããäºæ³ãããåäœã§ãã
æåã®äŸã§B
ãæé»ã®ã¹ãŒããŒã³ãŒã«ãäžæ£ã§ããããã private constructor
ã¯ã©ã¹ã¯ãå®è³ªçã«sealed
/ final
ãŸãã
2çªç®ã®äŸã§ã¯ãã³ã³ã¹ãã©ã¯ã¿ãŒã®ãã¹ãŠã®ãªãŒããŒããŒããšãã®å®è£
ãåãå¯èŠæ§ïŒã¡ãœãããšåãã«ãŒã«ïŒãæã£ãŠããå¿
èŠãããããã A
ã®å®£èšã¯ãšã©ãŒã«ãªããŸãã
ïŒ471ãåç §ããŠãã ããã ã³ã³ã¹ãã©ã¯ã¿ãŒããã©ã€ããŒãã«ããããšãæ¬åœã«å¿ èŠã§ããããããšãä¿è·ãããŸããïŒ
@benliddicottã¯ãã·ã³ã°ã«ãã³ã匷å¶ããããããã°ã©ããŒã«éçã¡ãœããã®1ã€ã䜿çšããŠãªããžã§ã¯ããäœæããããã«åŒ·å¶ããããããšäŸ¿å©ãªå ŽåããããŸãã
ãã¡ããã芧ãã ããã
@dsherret protected
ã¯ãããããã¹ãŠã®ããŒãºãæºãããŸãã
ãã ããããŠã³ã¹ããªãŒã ãŠãŒã¶ãŒãã¯ã©ã¹ããç¶æ¿ããæ£åœãªå¿
èŠæ§ããªãããšã確èªããããšã¯ã§ããŸããã private
ã®å¯äžã®å¹æã¯ãããŠã³ã¹ããªãŒã ãŠãŒã¶ãŒãäºæããŠããªãã£ãããŒãºã«å¯Ÿå¿ã§ããªãããã«ããããšã§ãã
@benliddicottæã ãããªããæãå¯äžã®ããšã¯ãã¯ã©ã¹ãæ¡åŒµ
"2.ã¯ã©ã¹ãæ¡åŒµã§ããªãããã«ããŸããããã«ãããäžæ³šæãŸãã¯æªæã®ãããµãã¯ã©ã¹ãããªããžã§ã¯ãã®ç¶æ ãå€åãããã®ããã«åäœããããšã§ãã¯ã©ã¹ã®äžå€ã®åäœãæãªãã®ãé²ããŸãããµãã¯ã©ã¹åã®é²æ¢ã¯ãéåžžãã¯ã©ã¹ãfinalã«ããããšã§å®çŸãããŸãããããã¯ãåŸã§èª¬æãã代æ¿æ段ã§ãã
çŸåšãTypeScriptã«ã¯final
/ sealed
ãµããŒãããªããããåã·ã¹ãã ã®èŠ³ç¹ããäžå€ã®ã¯ã©ã¹ãå®çŸããå¯äžã®æ¹æ³ã¯ãã©ã€ããŒãã³ã³ã¹ãã©ã¯ã¿ãŒã§ãã ïŒãã ããã³ã³ã¹ãã©ã¯ã¿ãŒã§ãªããžã§ã¯ããããªãŒãºããããšããå§ãããŸããïŒ
@billccn ããã®äœè ã®æèŠã¯èå³æ·±ãã§ãã å³æžé€šã®å·çè ã®æèŠãå³æžé€šã®å©çšè ã®æèŠãããåªå ãããã¹ãã§ãããšããèããããã§ãã ç§èªèº«ã®çµéšã§ã¯ãã©ã€ãã©ãªã®äœæè ã¯ãã©ã€ããŒãããã€äœ¿çšãããããããã䜿ãããããšãå®éã«ã¯ã©ã€ãã©ãªãã©ã®ããã«äœ¿çšãããããç¥ã£ãŠãããšä¿¡ããŠããã ãã§ããŠãŒã¶ãŒã«é çã®çš®ãåŒãèµ·ãããŸãã
ããããJavaã®ãããªéçèšèªã§ã¯ãªããããé©åãªæ¯èŒã¯Perlã§ãããå¥ã®åçèšèªã§ãïŒ http ïŒ
perlã«publicãprivateãprotectedãªã©ã®ã¢ã¯ã»ã¹ä¿®é£Ÿåããªãçç±ã®1ã€ã¯ãperlãä»äºã®éè¡ã劚ããããšããããããšèªèãããŠããããã§ããå ã®èšèšè ãæ³å®ããããšã¯ãäœã®é¢ä¿ããããŸãããããªããããã§äœããããã®ãã åæ§ã«ãæè»æ§ãèæ ®ããèšèš-ä»ã¯å¿ èŠãªããšæããããããããŸãããã次ã«æ¥ã人ã¯ããã®æ°ããåé¡ã解決ããã®ã«éåžžã«äŸ¿å©ã§ãããšæãããããããŸããããããŠããã®æè»æ§ãéçºããããã®å€©æãç¥çŠããŸã;-)
ãããŠïŒ
Perlã«ã¯ã匷å¶ããããã©ã€ãã·ãŒã«å€¢äžã«ãªãããšã¯ãããŸããã æ£åŒŸéãæã£ãŠããããã§ã¯ãªããæåŸ ãããªãã£ãã®ã§ãå± éããé¢ããã»ããããã§ãããã
http://www.perlmonks.org/?node_id=1096925
å®éãJavaScriptã¯åãã§ããã-ã¯ã-TypeScriptã¯ã»ãšãã©ãã¹ãŠã®ç¹ã§åãã§ãã typescriptã§ã¯ãé©åãªååã®ãšã¹ã±ãŒããããã䜿çšããŠãã©ã€ããŒãã¡ã³ããŒã«åé¡ãªãã¢ã¯ã»ã¹ã§ããŸãïŒ obj["propertyName"]
ã
ã©ã€ãã©ãªã©ã€ã¿ãŒãšããŠãã¡ãœãããåŒã³åºãããããªããžã§ã¯ãããç¶æ¿ãããããã®ã¯è³¢æã§ã¯ãªããšæãããå Žåã¯ãè³¢æã§ã¯ãªãããšããŠãŒã¶ãŒã«äŒããŠãã ããã ãããã圌ãã劚ããªãã§ãã ãã-çµå±ã圌ãã¯ããªãããããç¥ã£ãŠãããããããŸããã
ãä¿è·ãããŠããã°ååããšããè°è«ãããããŸããã TSã«å¯èŠæ§ã®æŠå¿µãããããã®æŠå¿µãã³ã³ã¹ãã©ã¯ã¿ãŒã«é©çšã§ããå Žåãçãã¯ãååã§ã¯ãããŸãããã§ãã
ã³ã³ã¹ãã©ã¯ã¿ãŒã§ã¢ã¯ã»ã¹ä¿®é£Ÿåãèš±å¯ãããŠããå Žåã¯ãä»ã®ä¿®é£Ÿåãšäžè²«ããåäœããããã©ã€ããŒããèš±å¯ããå¿ èŠããããšæããŸãã
äžè¬çã«ãã©ã€ããŒãã¡ã³ããŒã¯ç¢ºãã«äŸ¿å©ã§ãã ãããã䜿çšãããšãã¯ã©ã¹å€ã§å¯äœçšãåŒãèµ·ããããšãå¿é ããã«ãã¯ã©ã¹ã®å®è£ ã®è©³çŽ°ãæŽçããŠãªãã¡ã¯ã¿ãªã³ã°ã§ããŸãã
ãã©ã€ããŒãã³ã³ã¹ãã©ã¯ã¿ãŒã䜿çšãããšãããŒã ã®éçºè ã«ç¹å®ã®æ¹æ³ã§ããã°ã©ãã³ã°ã匷å¶ãããå ŽåããããŸãã ããšãã°ãããã§éçã¡ãœããã䜿çšããããã«åŒ·å¶ãããå ŽåããããŸããããã¯ãããèªã¿ãããããã®ã¯ã©ã¹ãæ¡åŒµããªãããã«åŒ·å¶ããããã§ãã
class Currency {
private constructor(private value: number, private type: CurrencyType) {
}
static fromNumberAndType(value: number, type: CurrencyType) {
return new Currency(value, type);
}
static fromString(str: string) {
const value = ...,
type = ...;
return new Currency(value, type);
}
// ... omitted ...
}
// error:
const badCurrency = new Currency(5.66, CurrencyType.USD);
// ok:
const goodCurrency1 = Currency.fromNumberAndType(5.66, CurrencyType.USD);
const goodCurrency2 = Currency.fromString("5.66 USD");
ãã©ã€ããŒãã³ã³ã¹ãã©ã¯ã¿ãŒã䜿çšãããšãããŒã ã®éçºè ã«ç¹å®ã®æ¹æ³ã§ããã°ã©ãã³ã°ã匷å¶ãããå ŽåããããŸãã
ããã¯ç®¡çäžã®åé¡ã§ãããèšèªèšèšã®åé¡ã§ã¯ãããŸããã
@benliddicottå€æ°ã®åèšè¿°åã«ã€ããŠãåãããšãèšããŸã:)ãã®æ©èœãæ°ã«å
¥ããªãå Žåã¯ããã¬ãŒã³JSã䜿çšããŠãã ããã ãŸãã¯
TSã䜿çšããŠãã³ã³ã¹ãã©ã¯ã¿ãŒã§ã®privateã®äœ¿çšãçŠæ¢ãã糞ããã®ãããªã«ãŒã«ãäœæããŸããæåŸã®ã³ã¡ã³ããèšãæãããšããããã¯èšèªèšèšã®åé¡ã§ã¯ãªããããŒã«ã®åé¡ã§ããã
@benliddicottäœããäžå¯èœãªå Žåã¯ãã³ãŒãã¬ãã¥ãŒãè¡ã£ãåŸãééã£ãŠãããšãã«ãããéãè¿ãå¿ èŠã¯ãããŸããã ããã¯æéãç¯çŽããŸãã
ã³ãŒããæ£ãã䜿çšããæ¹æ³ãã³ã³ãã€ã©ãŒã«æ£ç¢ºã«äŒããããšã¯ãããã°ã©ãã³ã°äžã«ã³ãŒãã䜿çšããéçºè ã«é©åãªãã£ãŒãããã¯ãæäŸããè³ç£ã§ãã
@dsherretãããã Architecture astronauts
æš©éãäžããã®ã¯ä»»æã®å¶çŽã§ãïŒ-1ïŒ
@jbondcãã®ã建ç¯å®å®é£è¡å£«ãã¯åççãªè°è«ã§ããïŒ ãã®æ©èœãå¿ èŠãšããŠãã人ã ãæããããè³è³ãããããããšããŠããŸããïŒ
@jbondcããã§ã¯ã建ç¯å®å®é£è¡å£«ããšããèšèã¯é¢ä¿ãªããšæããŸãã ããã¯ãã³ãŒããæžããããã¢ãŒããã¯ãã£ã«ã€ããŠèããããšã«
ããã«ãã³ãŒãã®èª€çšãé²ãã®ã«åœ¹ç«ã€ããããä»»æãã§ã¯ãªããšæããŸãã ã³ã³ã¹ãã©ã¯ã¿ãŒã䜿çšããã代ããã«éçã¡ãœããã®1ã€ã䜿çšããããéçã¡ãœããã®äœ¿çšã匷å¶ããŠã·ã³ã°ã«ãã³ã匷å¶ããããšãèªåèªèº«ãŸãã¯ããŒã ã«æãåºãããããšæããããããŸããã ãã°ããç°¡åã§ãã³ã³ãã€ã©ããé©åãªãã£ãŒãããã¯ãåãåããŸãã ãããæ£æçã§ãããªããããªãã¯èšèªã®å€ãã®åŽé¢ãæ£æçã§ãããšäž»åŒµããããšãã§ããŸãã ã³ã¡ã³ãã§è¡šçŸããªãã£ãã®ã¯æ£æçã ãšââããããšã«ã€ããŠãã£ãšèšãããããšãããã§ããããã
ããã¯èšèªæ©èœã§ããã人ã ãæ°ã«å ¥ããªãå Žåã¯ç°¡åã«äœ¿çšããªãããšãã§ããŸãã
@dsherretããã«å¥ã®å¶ââçŽãé©çšãã代ããã«ãææžåããã®ã«ååã§ã¯ãããŸãããïŒ
å€éç¶æ¿ã¯éåžžã«è€éã«ãªããŸããïŒ4805ãåç
§ããŠãã ããïŒããã¯ä»ã®ãšããåŸä»ãã®ããã§ãïŒã ç§ã¯ãã§ã«ïŒ3578ã§ç§ã®èãã®ããã€ããè¡šçŸããŠããã®ã§ãäºåºŠãšãããããæ°ã«ã¯ãªããŸããã astronaut
ã§å°ã匷ããªããŸããã誰ããæãããã€ããã¯ãããŸããã
ãã©ã€ããŒãã³ã³ã¹ãã©ã¯ã¿ãŒãæã€@jbondcã¯ã©ã¹ã¯ç¶æ¿ã§ããŸããã ãããã¯æ¬è³ªçã«å°å°ãããŠããã®ã§ãç¶æ¿ã¯ãã¡ãããå€éç¶æ¿ã¯ããã§æ©èœããªãã¯ãã§ãã
èªå·±ææžåã³ãŒããäœæããæ¹ããå€éšãã³ã¡ã³ãã«æžã蟌ããããã¯ããã«åªããŠããŸãã ããããTypeScriptã®ãã¹ãŠã®å¶éã奜ããªçç±ã®ã²ãšã€ã§ãããåºæ¬çã«ãã®æ©èœã§æ±ããŠãããã®ã§ããèšèªèªäœã䜿çšããŠã³ãŒããææžåãããã1ã€ã®æ¹æ³ã§ãã
ããŠããã«ããªãã®äŸãæžãå¥ã®æ¹æ³ããããŸãïŒ
module Currency {
export enum Type {
CAD = 1.3,
USD = 1,
}
class PrivateCurrency {
constructor(private value: number, private type: Type) { }
}
export function fromNumberAndType(value: number, type: Type) {
return new PrivateCurrency(value, type);
}
export function fromString(str: string) {
let value = 10;
let type = Type.CAD;
return new PrivateCurrency (value, type);
}
}
OOã£ãœããªãã§ãããå®éã«ã¯ãæ¬ç©ã®ãæ¬åœã®ãã©ã€ããŒãã¯ã©ã¹ããããŸãã
@jbondcãã©ã€ããŒãã¯ã©ã¹ãžã®éãèŠã€ããã®ã¯çŽ æŽãããããšã§ãïŒ ä»ã®äººã«å¥ã®ã¢ãããŒãïŒãã©ã€ããŒãã³ã³ã¹ãã©ã¯ã¿ãŒãæã€ãšã¯ã¹ããŒãå¯èœãªã¯ã©ã¹ïŒã䜿çšãããŸãã ããã§ãã°ã«ãŒãAã®ããŒãºãæºãããã°ã«ãŒãBã®äœæ¥ãäžæããªãæ©èœãååšããå¯èœæ§ãããããšãããããŸãã :)
+1
+1
ããã¯ãŸã ã¬ãŒããŒã«ä¹ã£ãŠããŸããïŒ PRã¯å€ããªã£ãŠããŸãïŒ
+1
+1
+1
ïŒ+1ïŒãã¡ã¯ããªãã¶ã€ã³ãã¿ãŒã³ã«åœ¹ç«ã¡ãŸã
ãããç¹°ãè¿ãã§ããããããŒãã£ãŒã«é ããŠããå Žåã¯ãè©«ã³ããŸããããã©ã€ããŒãã³ã³ã¹ãã©ã¯ã¿ãŒãå®çŸããããã«æ¬¡ã®ãã¿ãŒã³ã䜿çšããŠããŸãã
interface ExampleBuilder {
Instance(): Example;
}
export interface Example {
Val(): number;
}
export let Example: ExampleBuilder = class ExampleImpl {
constructor(v: number) {
}
Val(): number {
return 42;
}
static Instance(): Example {
return new ExampleImpl(2);
}
};
let x = Example.Instance(); // OK: x has type Example
let y = new Example(5); // ERROR: Cannot use 'new' with an expression whose type lacks a call or construct signature.
æè¿ããŒãžãããreadonly
修食åã䜿çšãããšããããããã«æŽçã§ããããšã«æ³šæããŠãã ããã
@myitcvä»ã®ãšããããã匷å¶ããã®ã¯ããªãã¯ãŒã«ã§ã...ããããç§ã®æèŠã§èšåãããŠããæè¯ã®æ¹æ³ã§ãã ãã ããããã§ãåé·ãããŠãäœãèµ·ãã£ãŠããã®ããç解ããã®ã«æ°ç§ããããŸãããã®ãããã¢ã¯ã»ã¹ä¿®é£Ÿåã¯ã³ã³ã¹ãã©ã¯ã¿ãŒã§éåžžã«äŸ¿å©ã§ãã
å人çã«ã¯ãå°æ¥ã®ãã¹ãŠã®ãã©ã€ããŒãã³ã³ã¹ãã©ã¯ã¿ãŒã«// todo: make private once supported
ã³ã¡ã³ããä»ããŠãã³ã³ã¹ãã©ã¯ã¿ãŒãåŒã³åºããªãããã«ããŠããŸãã ãã®æ©èœãå°å
¥ãããããã¢ã¯ã»ã¹ä¿®é£Ÿåã䜿çšããŠããã€ãã®æœè¡ãšããè¯ãããã¥ã¡ã³ããååŸã§ãããšäŸ¿å©ã§ãã
@dsherret
ããã§ããŸã åé·ãããŠãäœãèµ·ãã£ãŠããã®ããç解ããã®ã«æ°ç§ããããŸã
åæããŸããã ãããã®ã¯ã©ã¹ã¯ã³ãŒãã§çæããããããèªç¥çè² è·ã«ããã»ã©æ©ãŸãããããšã¯ãããŸããã ãããã£ãŠãããã°ã©ããŒãžã®ã€ã³ã¿ãŒãã§ãŒã¹ã¯å®éã«ã¯çŽ æŽãããã·ã³ãã«ã§ãã
https://github.com/Microsoft/TypeScript/pull/6885ã§ä¿®æ£æžã¿
ããããšã@AbubakerBïŒ
ããã«ã¡ã¯ããã®æ©èœã¯typescriptã®å°æ¥ã®ããŒãžã§ã³ã§ãªãªãŒã¹ãããäºå®ã§ããïŒ
ä»ã®ãšããããã©ã€ããŒããŸãã¯ä¿è·ãããã³ã³ã¹ãã©ã¯ã¿ãŒã宣èšããããšãããšãtypescript1.8.10ã§æ¬¡ã®ãšã©ãŒãçºçããŸãã
ãšã©ãŒTS1089ïŒ 'private'修食åãã³ã³ã¹ãã©ã¯ã¿ãŒå®£èšã«è¡šç€ºã§ããŸããã
ãããæ°ã«ããªãã§ã ãã®æ©èœãtypescript2.0ã«å«ãŸããããšã瀺ãããŒãããããèŠã€ããŸããã
ãããæ°ã«ããªãã§ã ãã®æ©èœãtypescript2.0ã«å«ãŸããããšã瀺ãããŒãããããèŠã€ããŸããã
ãŸãããã€ã«ã¹ããŒã³ãTypeScript 2.0
ã«èšå®ãããã©ãã«Fixed
ã¯ããããå«ãŸããŠããããšã瀺ããŸãã ã©ãã«ãFixed
éåžžããã¹ã¿ãŒã«å«ãŸãã npm install typescript@next
ããå
¥æã§ããŸãã
TypeScript 2.0.2 RCã䜿çšããŠããŸããã private
ã³ã³ã¹ãã©ã¯ã¿ãŒãäœæããããšãããšTS1089ã衚瀺ãããŸãã ç§ã¯ãããééã£ãŠããŸããããããšãããã¯åã«ä¿®æ£ãããŠããŸãããïŒ
TypeScript 2.0.2 RCã䜿çšããŠããŸããããã©ã€ããŒãã³ã³ã¹ãã©ã¯ã¿ãŒãäœæããããšãããšTS1089ã衚瀺ãããŸãã ç§ã¯ãããééã£ãŠããŸããããããšãããã¯åã«ä¿®æ£ãããŠããŸãããïŒ
ããã¯ç§ã®ããã«åããŠããŸãã ã³ãã³ããšã€ãªã¢ã¹ãæ£ããããŒãžã§ã³ãæããŠããããšãããã³ãšãã£ã¿ãŒãææ°ã®TSããŒãžã§ã³ã䜿çšããããã«æŽæ°ãããŠããããšã確èªããŠãã ããã
ç§ã¯åé¡ãèŠã€ããŸããã package.json
ç§ã®ä»æ§ãšã PATH
解決ããããã®ã«ãããããããééã£ãããŒãžã§ã³ã®tsc
ã䜿çšããŠããã®ã¯gulp-typescript
ã®ããPATH
ã
ãã®åé¡ãæ±ããŠããä»ã®äººã«ãšã£ãŠãç§ã®è§£æ±ºçã¯ç§ã®gulpfile.js
ãç·šéããããš
require
TypeScriptïŒ// Tool-Chain: Scripts
var tsc = require("typescript");
var typescript = require('gulp-typescript');
// Task(s): Build TypeScript Outputs
var tsconfig = typescript.createProject("path to tsconfig", { typescript: tsc });
gulp.task('build:scripts', function () {
let ts = tsconfig.src()
.pipe(sourcemaps.init())
.pipe(typescript(tsconfig));
return ts.js.pipe(sourcemaps.write(".")).pipe(gulp.dest(path.join(outputs.root, outputs.scripts)))
});
æãåèã«ãªãã³ã¡ã³ã
åãããšãã¯ã©ã¹ã®ãã©ã€ããŒãé¢æ°ã«ãåœãŠã¯ãŸããŸãããïŒ ãã©ã€ããŒãã³ã³ã¹ãã©ã¯ã¿ãŒã«ã¢ã¯ã»ã¹ããããã«ã³ã³ãã€ã«ãšã©ãŒãçºçããªãã£ãçç±ãããããŸããã