μ»΄νμΌλ¬λ μ½λκ° μ΄κΈ°νλκΈ° μ μ κ°μ μ¬μ©ν λ μ€λ₯λ₯Ό λ°νν΄μΌν©λλ€.
// Error, 'Derived' declaration must be after 'Base'
class Derived extends Base { }
class Base { }
μ»΄νμΌλ¬ μ€λ₯λ₯Ό λμ§λ κ²μ΄ μ’μ ν΄κ²°μ± μ΄μ§λ§ μ»΄νμΌλ¬λ μ¬λ°λ₯Έ μμλ‘ ν΄λμ€λ₯Ό μΆλ ₯ ν μ μμ΅λλ€. κ·Έκ²μ ν¬λ¬ κΈ°λ₯μ΄ λ κ²μ λλ€. μ : μ»΄νμΌλ¬λ μ’ μμ± κ΄κ³λ₯Ό μΆμ νκ³ μ΄μ λ°λΌ ν΄λμ€λ₯Ό μΆλ ₯νμ¬ μ’ μμ± μμλ₯Ό ν΄κ²°ν μμλ κ²½μ°μλ§ μ»΄νμΌλ¬ μ€λ₯λ₯Ό λ°μμν΅λλ€.
μ»΄νμΌλ¬λ μ’ μμ± κ΄κ³λ₯Ό μΆμ νκ³ μ΄μ λ°λΌ ν΄λμ€λ₯Ό μΆλ ₯νμ¬ μ’ μμ± μμλ₯Ό ν΄κ²°ν μμλ κ²½μ°μλ§ μ»΄νμΌλ¬ μ€λ₯λ₯Ό λ°μμν΅λλ€.
μλ‘μ΄ μ μμν΄μΌν©λκΉ? μ΄κ²μ΄ μ κ° νμ¬ TypeScript λ΄λΆ λͺ¨λ λμ AMD λͺ¨λμ μ¬μ©νλ μ΄μ μ
λλ€. RequireJS μ»΄νμΌλ¬λ μ½λλ² μ΄μ€μμ μ§μ ν μ’
μμ±μ μ¬μ©νμ¬ μ μ ν λͺ¨λ μ§λ ¬ν μμλ₯Ό κ²°μ ν©λλ€ ( require()
).
# 274μ μ°κ²°. μ°λ¦¬λ μ΄κ²μ κ·μΉκ³Ό λ²μλ₯Ό μ€λͺ ν΄μΌν©λλ€
extends μΌμ΄μ€λ μ΄ν κ²μ¬λ₯Όμν μ’μ ν보μ²λΌ 보μ λλ€. μ΄ν μ μΌλ‘ κΈ°λ³Έ ν΄λμ€κ° νμ ν΄λμ€λ³΄λ€ λ¨Όμ μ€λμ§ νμΈνλ©΄λ©λλ€. κ³ λ €ν΄μΌ ν λ€λ₯Έ κ²½μ°κ° μμ΅λκΉ?
ν κ°μ§ λ¬Έμ λ ν΄λμ€ μ μλ₯Ό μ¬μ λ ¬νλ©΄ μ μ μ΄λμ λΌμ΄μ μμκ° μλμΌλ‘ μ¬μ λ ¬ λ μ μλ€λ κ²μ λλ€. κΈ°λ³Έ ν΄λμ€κ° νμ ν΄λμ€ λ€μ μ€λ©΄ ν΄λμ€ μ μ μ¬μ΄νΈμμ μ μ μ΄λμ λΌμ΄μ μ½λλ₯Ό μ μ§νκ±°λ μ€λ₯ νλκ·Έλ₯Ό μ§μ ν©λλ€.
λκ·λͺ¨ νλ‘μ νΈ / μ μ§ λ³΄μ κ΄μ μμ λ€μ€ νμΌ μΌμ΄μ€κ° λ ν₯λ―Έλ‘κ³ μ μ©νλ€κ³ μκ°ν©λλ€ (κ²°κ΅ typescriptμ νλ©΄ μ λͺ©ν).
λ°λΌμ λ¨μΌ νμΌ μΆλ ₯ λͺ¨λμμ μΆλ ₯ μμλ₯Ό κ³ λ €ν΄μΌνλ€κ³ μκ°ν©λλ€. (μ¬λ¬ νμΌμ ν¬ν¨νλ html νμΌμ λΉλνκΈ° μν΄μ΄ μμλ₯Ό μ»μ μμλ κ²λ μ’μ κ²μ λλ€).
λ€μμ μ£Όλ¬Έμ 보μ₯ ν μμλ λͺ κ°μ§ μ§μ μ λλ€.
class X extends Y {} // ensure Y is defined in prior file
module { new X(); } // ensure X is defined in prior file
class S { static z = new Z(); } // ensure Z is defined in prior file
ν΄λμ€λΏλ§ μλλΌ μ¬μ© μ μ μ μλλ ν¨μμ λ³μλ‘μ΄λ₯Ό νμ₯ ν μλ μμ΅λλ€.
PS νλ‘ν νμ μ΄ μμ΅λλ€.
λλ λΉμ μ μν΄ λ°©μΆ μμλ₯Ό λ°κΎΈλ €λ μλκ° μλ€κ³ μκ°νλ©°, λ°νμμ μ€ν¨ ν κ²μ΄ νμ€ν μΌμ λν΄ μ€λ₯λ₯Ό μ€ μ μμ΅λλ€.
Dan, λ¨μΌ νμΌ λ΄μμ μ¬μ λ ¬νλ κ²μ λμνμ§λ§ --outμ μ¬μ©νμ¬ μ¬λ¬ νμΌμ κ²°ν©νλ©΄ μ»΄νμΌλ¬κ° λ°©μΆ μμλ₯Ό μ μ΄ ν μ μμΌλ©° μ νν μμκ° μλνλ κ²μ΄ μ’μ΅λλ€.
@sparecycles ν¨μλ λ°νμμ μ΄μ¨λ λ²μμ 맨 μλ‘ μ¬λΌκ°λλ€. κ·Έλμ κΈ°λ₯μ ν₯λ―Έλ‘μ§ μμ΅λλ€. λ³μλ νΈμ΄μ€νΈλλ κ²½μ° λ¬Έμ λ ν΄λΉ μ§μ μμ μ΄κΈ°νλμ§ μλλ€λ κ²μ λλ€. μ΄μ μ΄κΈ°ν μ μ μ¬μ©νλ κ²μ λ€λ₯Έ λ¬Έμ μ΄λ©° # 274μμ μΆμ λλ κ² κ°μ΅λλ€.
μ¬μ λ ¬μ μν΄; μ°λ¦¬κ° λ°λλ μ² νμ μΆλ ₯ μ½λλ₯Ό μ λ ₯ μ½λμ μ΅λν κ°κΉκ² λ§λλ κ²μ λλ€. λ³Έμ§μ μΌλ‘ μ°λ¦¬λ μ¬μ©μ μ½λλ₯Ό ν΅κ³Όμν€κ³ μ νμ μ κ±°ν©λλ€. μ΄λ° μλ―Έμμ μ€λ₯λ μ°λ¦¬κ° μ§κΈκΉμ§ ν μΌκ³Ό λ λ°μ ν κ΄λ ¨μ΄ μμ΅λλ€.
ꡬνμ κ΄ν΄μλ μ΅κ·Όμ Letκ³Ό Constλ‘ μ΄ν μμ κ²μ¦μ μΆκ°νμΌλ©° μΌλ°μ μΈ κ²μ¬λ‘ μΆμΆνμ¬ μ΄λ¬ν λ€λ₯Έ κ²½μ°μ μ¬μ©ν μ μμ΅λλ€. μ¬κΈ°μμ μ°Ύμ μ μμ΅λλ€.
https://github.com/Microsoft/TypeScript/blob/master/src/compiler/checker.ts#L329
μ°λ¦¬κ° νμΈνλ μ¬λ‘λ₯Ό λͺ ννκ² μλ³ν΄μΌνλ©° PRμ νμ€ν νμλ°μ κ²μ λλ€ :)
μ, λ¨μΌ typescript νμΌ λ΄μμ μμλ₯Ό λ³κ²½νκ³ μΆμ§ μλ€λ λ° λμνμ§λ§ --out νμΌμ κ²½μ° μ¬μ©μκ° μμλ₯Ό μ§μ νμ§ μμΌλ―λ‘ μ»΄νμΌλ¬κ° μ΅μ μ λ Έλ ₯μ κΈ°μΈμ΄λ κ²μ΄ μ’μ΅λλ€. μλνλ μμλ₯Ό μ ννμμμ€.
ν¨μ νΈμ΄ μ€ν
μ λ¨μΌ νμΌ μΌμ΄μ€μμ μ κ²½ μΈ νμκ°μλ μ’μ μμ΄μ§λ§ μ¬λ¬ νμΌλ‘ μ»΄νμΌνκ³ .html νμΌμ ν¬ν¨ ν μνμ€λ₯Ό μ ννλ κ²μ΄ μ¬λμκ²λ μ¬μν μΌμ΄ μλ μ μμ΅λλ€. μ¬μ©μ μ μλμ§ μμ λ³μλ /// <reference>
μ€μ λ³κ²½μΌλ‘ μΈν΄ μ»΄νμΌλ¬μμ μκΈ°μΉ μμ λμμ΄ λ°μν μμλ μ’μ μμ
λλ€.
κ·Έλ¬λ --out νμΌμ κ²½μ° μμλ μ¬μ©μκ° μ§μ νμ§ μμ΅λλ€.
μ΄κ²μ μ¬μ€μ΄ μλλλ€. μ¬κΈ°μλ λ§€μ° κ°λ¨ν κ·μΉμ΄ μμ΅λλ€. reference
νκ·Έκ° μμνλ μμμ λͺ
λ Ή μ€μμ νμΌ μμλ₯Ό μ¬μ©ν©λλ€. λ κ²½μ° λͺ¨λ μ¬μ©μκ° μ£Όλ¬Έμ μ 곡ν©λλ€. μ»΄νμΌλ¬κ° μ¬μ©μκ° μ 곡 ν μμλ₯Ό 무μνκ²νλ κ²μ μνν κ²½λ‘μ
λλ€. μ»΄νμΌλ¬κ° μνλ μμμ λ€λ₯Έ μμλ₯Ό κ²°μ νλ©΄ μ΄λ»κ²λ©λκΉ? κ·Έκ±Έ μ΄λ»κ² 무μνκ² μ΅λκΉ? ν μ£Όλ¬Έμ΄ 2 κ°μ ν΄λμ€λ₯Ό μ€λ¨νκ³ λ€λ₯Έ μ£Όλ¬Έμ΄ 2 κ°μ λ³μλ₯Ό μ€λ¨νλ©΄ μ΄λ»κ²λ©λκΉ?
κ·Έλ° λ€μ μμλ₯Ό λ³κ²½ν΄μλ μλμ§λ§ μ μ΄λ μ»΄νμΌλ¬κ° μ¬μ©νλ μμκ° μλͺ»λμμμ μ¬μ©μμκ² κ²½κ³ ν΄μΌν©λκΉ (μ΅μ μ΄ μμ΄μΌν©λκΉ)?
μ. μ°λ¦¬λ μ£Όλ¬Έν΄μλ μλμ§λ§ λμ μ€λ₯μ λλ€.
μνΈ μ¬κ· ν΄λμ€μ λν TypeScriptμ μ¬λ°λ₯Έ κ΄μ©κ΅¬λ 무μμ
λκΉ? μ€μ μ μ μ΄μ μ declare class
?
ν΄λμ€κ° μ ν μμ€ν μ΄λ μΈμ€ν΄μ€ λ©μλμμ λ¨μν μλ‘λ₯Ό μ°Έμ‘°νλ κ²½μ° λ¬Έμ κ°λμ§ μμ΅λλ€. λ¬Έμ κ°λλ μ μΌν "μνΈ μ¬κ·"ν¨ν΄μ λ€μκ³Ό κ°μ΅λλ€.
class Alpha {
static myFriendBeta = new Beta();
}
class Beta {
static myFriendAlpha = new Alpha();
}
μ΄κ²μ cloduleλ‘ λ€μ μμ±ν μ μμ΅λλ€.
class Alpha {
}
class Beta {
static myFriendAlpha = new Alpha();
}
module Alpha {
export var myFriendBeta = new Beta();
}
μ’μμ, 'κΈ°λ³Έ ν΄λμ€λ νμ ν΄λμ€λ³΄λ€ λ¨Όμ μ΄ν μ μΌλ‘ μ μλμ΄μΌν©λλ€'μΈμμ΄ λ¬Έμ μ μΌλΆλ‘ ꡬννλ €λ κ·μΉμ 무μμ λκΉ?
λ΄λΆ λͺ¨λ λ©€λ²μ λν ν¬μλ μ°Έμ‘°λ₯Ό νμ©νμ§ μμ΅λλ€.
var x = M.fn(); // Should error
module M {
export function fn() {}
}
μ΄κ±° ν λ©€λ²μ λν μ λ°© μ°Έμ‘° κΈμ§
var x = E.A; // Should error
enum E { A }
IMOλ μ¬λλ€μ΄ μΌλ°μ μΌλ‘ λ¨μΌ νμΌμμ λͺ¨λ μ½λλ₯Ό μ μνμ§ μκΈ° λλ¬Έμμ΄ λ¬Έμ μ λ²μκ° λ€μ μ νμ μ λλ€. κΈ°λ³Έ ν΄λμ€λ νμ ν΄λμ€μ λν΄ λ³λμ νμΌμ μ‘΄μ¬ν κ°λ₯μ±μ΄ λ ν½λλ€.
@sparecycles μ λ€μ μ¬νλμ΄ λ¬Έμ μ λν ν΄κ²°μ± μ μΌλΆκ°λμ΄μΌνλ€κ³ μ μν©λλ€.
κ·Έλ° λ€μ μμλ₯Ό λ³κ²½ν΄μλ μλμ§λ§ μ μ΄λ μ»΄νμΌλ¬κ° μ¬μ©νλ μμκ° μλͺ»λμμμ μ¬μ©μμκ² κ²½κ³ ν΄μΌν©λκΉ (μ΅μ μ΄ μμ΄μΌν©λκΉ)?
"μ»΄νμΌλ¬κ° μ¬μ©νλ μμ"μλ tsconfig
μ§μ λ μμκ° ν¬ν¨λμ΄μΌν©λλ€.
κΈ°λ³Έ ν΄λμ€μ νμ ν΄λμ€κ° κ°μ νμΌμμμ λ λ¬Έμ λ κ·Έλ€μ§ λμμ§ μμ΅λλ€. νλ‘κ·Έλ¨μ μμμ μΆ©λνκ³ νλ‘κ·Έλλ¨Έλ ν΄λΉ νμΌμ μμλ₯Ό λ³κ²½νκ³ λ¬Έμ λ _fixed_κ°λ©λλ€.
λ€μ€ νμΌ κ²½μ°λ λ―Έλ¬ν μ΄μ λ‘ μμκ° λ³κ²½ λ μ μμΌλ―λ‘ λͺ¨νΈν μμλ‘ μ¬λ¬ νμΌμ μ°κ²°ν λ μ»΄νμΌλ¬κ° κ²½κ³ ν΄μΌνλ κ²½μ°μ λλ€.
κΈ°λ³Έ ν΄λμ€μ μ¬λ¬ νμ ν΄λμ€κ° λͺ¨λ λ³λμ νμΌμμλ κ²½μ°λ₯Ό κ³ λ €νμμμ€. κΈ°λ³Έ ν΄λμ€λ ꡬνμμ νμ ν΄λμ€ μ€ μΌλΆλ₯Ό μ¬μ©νλ―λ‘μ΄λ₯Ό μ°Έμ‘°νμ§λ§ μ¬μ ν μΆλ ₯μμ ββκ°μ₯ λ¨Όμ λ°°μΉν΄μΌν©λλ€. λ§μ°¬κ°μ§λ‘ λͺ¨λ νμ ν΄λμ€λ κΈ°λ³Έ ν΄λμ€λ₯Ό μ°Έμ‘°ν΄μΌν©λλ€.
μ, μνΈ μ°Έμ‘° νμΌμλ λ¬Έμ κ° μμ΅λλ€. A.tsκ° B.tsλ₯Ό μνΈ μ°Έμ‘°νκ³ X.tsμ A.tsκ° ν¬ν¨λμ΄ μμΌλ©΄ μΆλ ₯ μμλ [B, A, X]κ°λκ³ B.tsλ₯Ό μ°Έμ‘°νλ©΄ μΆλ ₯ μμκ°λ©λλ€. μ£Όλ¬Έμ [A, B, X]μ λλ€. (κ·Έλ¬λ μ΄λ¬ν μμ μ€ νλλ§ λ°νμμ μλ ν μ μμ΅λλ€.) B λλ Aκ° μ°Έμ‘° λ κ²½μ° μ»΄νμΌμ΄ λκ°μ΄ μ μ±κ³΅νλ―λ‘ μμ μ΄ μ·¨μ½ ν΄μ§λλ€.
λ΄ κΈ°λ³Έ νμ ν΄λμ€ μμ€ν λ¬Έμ μ λν λ΄ μ루μ : λ΄ ν΄λμ€ κ³μΈ΅ ꡬ쑰μ index.tsλ₯Ό μΆκ°νκ³ μ΄ νμΌμ λͺ¨λ νμ ν΄λμ€μ κΈ°λ³Έ ν΄λμ€λ₯Ό ν¬ν¨ν©λλ€. μ΄κ²μ μΆλ ₯μ΄ κΈ°λ³Έ ν΄λμ€λ₯Ό λ¨Όμ λ°°μΉνλ€λ κ²μ 보μ₯νμ΅λλ€. (μμ ν λ° μ§κ΄μ μ λλ€!). λ΄κ° μνλ νμΌμ μ§μ μ°Έμ‘°νλ©΄ νμ λ ν΄λμ€ λ€μ κΈ°λ³Έ ν΄λμ€κ° μμ±λλ€λ κ²μ μμμ΅λλ€.
μ»΄νμΌλ¬ κ²½κ³ λ λ§€μ° μ’μ§λ§ μνΈ μ°Έμ‘° μλ리μ€μ μ°Έμ‘° μ€ νλλ₯Ό λ°©μΆ μμλ‘ νλκ·Έ μ§μ ν μ μκ³ λ€λ₯Έ νλλ μ μΈμ λμ΄ μ€κΈ°μν κ²μ λλ€. μνΈ λ°©μΆ μμ μ°Έμ‘°λ μ€λ₯μ λλ€.
(νμ¬ Visual Studio / Typescript νλ‘μ νΈμμ .js ν¬ν¨ λͺ©λ‘μ μλμΌλ‘ μμ±νκΈ° μν΄μ΄ κΈ°λ₯μ ꡬννμ΅λλ€ (λλ²κ·ΈνκΈ° μ¬μ).νμ§λ§ μ½λλ μΈλΌμΈ μμ μΌλ‘ C #μ μμ΅λλ€. 곡μ ν μ μλμ§ λ¬Όμ΄ λ³΄κ² μ΅λλ€. κΈ°λ³Έμ μΌλ‘ Tarjanμ CC μκ³ λ¦¬μ¦μ λ λ² μ€νν©λλ€.)
emit-orderκ° μλͺ»λμμ λ κ²½κ³ νκ³ λͺ μμ μΈ μ§μλ¬ΈμΌλ‘ emit-orderλ₯Ό μμ ννλ κ²μ typescriptλ₯Ό λκ·λͺ¨ νλ‘μ νΈμμ μ€ν κ°λ₯ν μΈμ΄λ‘ λ§λλ λ° ν° λμμ΄ λ κ²μ λλ€.
λλ λΉκ΅μ μμ μ½λλ² μ΄μ€ (μ½ 80 κ°μ .ts νμΌ)μμμ΄ λ¬Έμ λ₯Ό κ½€ μμ£Ό λ°μν©λλ€. μ΄μμ μΌλ‘λ λ΄ νμΌμ 맨 μμ <reference>
νκ·Έκ°μκ³ μ»΄νμΌλ¬κ°μ΄ λͺ¨λ κ²μ μ²λ¦¬ ν μ ββμμ΅λλ€.
λ΄ μ±μλ ν΄λμ€λ₯Ό μΈμ€ν΄μ€ννκ³ μ ν리μΌμ΄μ
(λ΄ μ»΄ν¬μ§μ
루νΈ)μ μ€ννλ νμΌμ΄ 1 κ° λΏμ΄κ³ νμ₯μ μΆκ°νλ νμΌ (μ : Array.prototype.distinct
)μ΄ λͺ κ° μκ³ λλ¨Έμ§λ ν΄λμ€ / μΈν°νμ΄μ€ μ μμ
λλ€.
μ΄ κ²½μ° λλΆλΆμ μ½λλ μ¬μ λ ¬μμν 곡μ ν κ²μμ΄λ©° μ¬λ°λ₯΄κ² μλνκΈ° μν΄ μλμΌλ‘ <reference>
μ μλ₯Ό μꡬν΄μλ μλ©λλ€. ν΄λμ€ μ μλ λͺ¨λ μ»΄νμΌλ¬ μ¬μ λ ¬μ λν 곡μ ν κ²μμΌλ‘ κ°μ£Όλλ©° κ²°ν© λ μΆλ ₯μ 맨 μλ‘ λΆλ₯λμ΄μΌνλ©° λλ¨Έμ§ λͺ
λ Ήλ¬Έμ μ
λ ₯ λΉμμ μμλ₯Ό μ μ§ν μ μμ΅λλ€.
μ»΄νμΌλ¬ νλκ·Έ --looseSorting
κ° κ°λ₯ν κΉμ? κ½€ λ§μ΄ μ°Ύλ κΈ°λ₯μΈ κ² κ°μ΅λλ€.
ES6μ emit class-declarationμμλ ν΄λμ€ μ μΈ νμ μ μ μμ± ν λΉμ μνν©λλ€. μ΄λ κ²νλ©΄ κ³μ° λ μμ± μ΄λ¦μ ν΄λμ€ μ μ μμ± μ°Έμ‘°κ° μ μ μ μ¬μ©μ΄λ©λλ€.
λ΄ λ³΄λΈ JS :
class C {
[C.p] () {} // Use before definition
[C.p+ C.e]() {} // Use before definition
[D.f] () {} // Use before definition
}
C.p = 10;
C.e = 20;
class D {
}
D.f = "hi";
λ κ°μ§ κ²½μ°μλ§μ΄ μ€λ₯μ λν΄ κ²½κ³ ν©λλ€. κ³μ° λ μμ± μ΄λ¦μ ν΄λμ€ μ μ μμ±μ μ°Έμ‘°νκ±°λ κ·Έ μλμ μ μ λ λ€λ₯Έ ν΄λμ€ μΈ μμ±μ μ°Έμ‘°ν©λλ€.
μ€λ μ°λ¦¬κ° κ°μ§κ³ λλ μ¬μν μλ ν μ€νΈμ ν¬ν¨μν€κΈ° μν΄ λ€μκ³Ό κ°μ΅λλ€.
function f() {
function g() {
i = 10;
}
let i = 20;
g();
}
μ μ¬μ© / μ μμ μμ΄ μ»μ μ’μ κ² g
μ½ i
.
λΈλ‘ λ²μ λ΄μμ μ μ λ ν¨μμ λν΄ μκ°νλ κ²μ μμ§ λ§μμμ€. κ·Έκ²μ JavaScript νμ€μ λ°λΌ μ μλμ§ μμ λμμ΄λ©° μ μ΄λ Firefoxμ Chromeμ ꡬνμ λμνμ§ μμ΅λλ€.
μ :
function f() {
if (true) {
g(); // iirc, g executes in Chrome, and is undefined in Firefox
function g() {
}
g(); // works in both browsers
}
}
μ§κΈ https://github.com/Microsoft/TypeScript/issues/2854μμ μΆμ ν©λλ€.
μ€λ μ°λ¦¬κ° μ΄κ²μ λ¬Ό λ Έκ³ λ¬΄μ¨ μΌμ΄ μΌμ΄λκ³ μλμ§ μμλ΄λ λ° μκ°μ΄ κ±Έλ Έμ΅λλ€.
TypeScript v1.8.10, Webpack κΈ°λ° λΉλ, κΈ°λ³Έ λ° νμ ν΄λμ€ λͺ¨λ λμΌν νμΌμ μ μλμμ§λ§ (λΆλͺ ν) μλͺ»λ μμλ‘, μ»΄νμΌ μ€λ₯λ κ²½κ³ κ° μμΌλ©°, μμ€ λ§΅μ΄ μλνλ κ²½μ°μλ μ€λ₯ νΈμΆ μ€νμ΄ λ§€μ° μ μ©νμ§ μμ μμΉ (νμ λ μμΉλ₯Ό κ°μ Έ μ€λ λ€λ₯Έ ν΄λμ€μ λ).
μ 체 λ Όμλ₯Ό κ±°μΉμ§λ μμ§λ§ μκΈ μ²μΉλ‘ μ»΄νμΌλ¬ κ²½κ³ κ° λμμ΄ λ κ² κ°μ΅λλ€. 2 Β’
TSκ°μ΄ κΈ°λ₯μ κΈ°λ³Έμ μΌλ‘ μ§μνμ§ μλλ€λ κ²μ μ΄λ¦¬μμ μΌμ λλ€. κ·Έκ²μ΄ μΌκΈ°νλ νΌλμ νμ€ JSλ₯Ό μ¬μ©νλ κ²κ³Ό μ μ¬ν©λλ€. λν, κ°μ λ°©λ², λꡬ?
@MrGuardian OPμ μ€λͺ λ μ¬νμ΄ μμ λμμ΅λλ€. μλ‘μ΄ λ¬Έμ λλ νμ¬ κ²ͺκ³ μλ λ¬Έμ λ₯Ό λ μ μ€λͺ νλ κΈ°μ‘΄ λ¬Έμ λ₯Ό λͺ νν ν μ μμ΅λκΉ?
(# 12673) λ€μμ IMOκ° μ€λ₯ μ¬μΌνλ λ λ€λ₯Έ λ κ°μ§ κ²½μ°μ
λλ€.
````
ν΄λμ€ ν
μ€νΈ
{
_b = this._a; // μ μλμ§ μμ, μ€λ₯ / κ²½κ³ μμ
_a = 3;
static _B = Test._A; // undefined, no error/warning
static _A = 3;
method()
{
let a = b; // Block-scoped variable 'b' used before its declaration
let b = 3;
}
}
````
@Spongman μ λ³λμ λ¬Έμ μ
κ°μ₯ μ μ©ν λκΈ
μ€λ μ°λ¦¬κ° μ΄κ²μ λ¬Ό λ Έκ³ λ¬΄μ¨ μΌμ΄ μΌμ΄λκ³ μλμ§ μμλ΄λ λ° μκ°μ΄ κ±Έλ Έμ΅λλ€.
TypeScript v1.8.10, Webpack κΈ°λ° λΉλ, κΈ°λ³Έ λ° νμ ν΄λμ€ λͺ¨λ λμΌν νμΌμ μ μλμμ§λ§ (λΆλͺ ν) μλͺ»λ μμλ‘, μ»΄νμΌ μ€λ₯λ κ²½κ³ κ° μμΌλ©°, μμ€ λ§΅μ΄ μλνλ κ²½μ°μλ μ€λ₯ νΈμΆ μ€νμ΄ λ§€μ° μ μ©νμ§ μμ μμΉ (νμ λ μμΉλ₯Ό κ°μ Έ μ€λ λ€λ₯Έ ν΄λμ€μ λ).
μ 체 λ Όμλ₯Ό κ±°μΉμ§λ μμ§λ§ μκΈ μ²μΉλ‘ μ»΄νμΌλ¬ κ²½κ³ κ° λμμ΄ λ κ² κ°μ΅λλ€. 2 Β’