μ½λκ° μμ΅λλ€.
baseTypes.ts
export namespace Living.Things {
export class Animal {
move() { /* ... */ }
}
export class Plant {
photosynthesize() { /* ... */ }
}
}
dog.ts
import b = require('./baseTypes');
export namespace Living.Things {
// Error, can't find name 'Animal', ??
export class Dog extends Animal {
woof() { }
}
}
tree.ts
// Error, can't use the same name twice, ??
import b = require('./baseTypes');
import b = require('./dogs');
namespace Living.Things {
// Why do I have to write b.Living.Things.Plant instead of b.Plant??
class Tree extends b.Living.Things.Plant {
}
}
μ΄κ²μ λͺ¨λ λ§€μ° νΌλ μ€λ½λ€. μΈλΆ λͺ¨λμ λͺ¨λ μ¬μ©νμ¬ μ νμ λμΌν λ€μ μ€νμ΄μ€μ κΈ°μ¬νκ³ μΆμ΅λλ€ Living.Things. μ΄ κΈ°λ₯μ΄ μ ν μλνμ§ μλ κ² κ°μ΅λλ€ . Animalμμ λ³Ό μ μμ΅λλ€ dogs.ts. λλ μ 체 λ€μ μ€νμ΄μ€ μ΄λ¦μ μΈ νμκ° b.Living.Things.Plantμλ₯Ό tree.ts. νμΌμμ λμΌν λ€μ μ€νμ΄μ€μ μ¬λ¬ κ°μ²΄λ₯Ό κ²°ν©νλ κ²μ μλνμ§ μμ΅λλ€. μ΄λ»κ²ν΄μΌν©λκΉ?
λ΅λ³
μΊλ μ»΅ μ μΆ
λ²μ 1 : λͺ¨λ μ¬νμμν μ»΅
λ€μκ³Ό κ°μ μ½λλ₯Ό μμ±νλ€κ³ κ°μ ν΄ λ΄ μλ€.
Mod1.ts
export namespace A {
export class Twix { ... }
}
Mod2.ts
export namespace A {
export class PeanutButterCup { ... }
}
Mod3.ts
export namespace A {
export class KitKat { ... }
}
μ΄ μ€μ μ λ§λ€μμ΅λλ€ :
κ° λͺ¨λ (μ©μ§) μλ μ΄λ¦μ΄ μ§μ λ μ체 μ»΅ μ΄ Aμμ΅λλ€. μ΄κ²μ μΈλͺ¨κ° μμ΅λλ€-μ€μ λ‘ μ¬νμ μ‘°μ§ νλ κ²μ΄ μλλΌ, λΉμ κ³Ό κ°μ μ¬μ΄μ μΆκ° λ¨κ³ (μ»΅μμ κΊΌλ΄κΈ°)λ₯Ό μΆκ°νλ κ²μ
λλ€.
λ²μ 2 : κΈλ‘λ² λ²μμμ ν μ»΅
λͺ¨λμ μ¬μ©νμ§ μμλ€λ©΄ λ€μκ³Ό κ°μ μ½λλ₯Ό μμ±ν μ μμ΅λλ€ ( exportμ μΈ λΆμ‘± ).
global1.ts
namespace A {
export class Twix { ... }
}
global2.ts
namespace A {
export class PeanutButterCup { ... }
}
global3.ts
namespace A {
export class KitKat { ... }
}
μ΄ μ½λ Aλ μ μ λ²μμμ λ³ν© λ λ€μ μ€νμ΄μ€ λ₯Ό λ§λλλ€ .
μ΄ μ€μ μ μ μ©νμ§λ§ λͺ¨λμ κ²½μ°μλ μ μ©λμ§ μμ΅λλ€ (λͺ¨λμ΄ μ μ λ²μλ₯Ό μ€μΌμν€μ§ μκΈ° λλ¬Έμ).
λ²μ 3 : 컡리μ€
μλμ μλ₯Ό λ€μκ°λ, μ»΅ A, Aλ°A λΉμ μκ² νΈμλ₯Όνκ³ μμ§ μμ΅λλ€. λμ μ½λλ₯Ό λ€μκ³Ό κ°μ΄ μμ±ν μ μμ΅λλ€.
Mod1.ts
export class Twix { ... }
Mod2.ts
export class PeanutButterCup { ... }
Mod3.ts
export class KitKat { ... }
λ€μκ³Ό κ°μ κ·Έλ¦Όμ λ§λ€λ €λ©΄
ν¨μ¬ λ«λ€!
μ΄μ λͺ¨λμμ λ€μ μ€νμ΄μ€λ₯Ό μΌλ§λ λ§μ΄ μ¬μ©νκ³ μΆμμ§ μμ§λ μκ°νκ³ μλ€λ©΄ κ³μ μ½μΌμμμ€ β¦
μ΄λ€μ λΉμ μ΄ μ°Ύκ³ μλ κ°λ μ΄ μλλλ€
λ€μ μ€νμ΄μ€κ° μ²μ μ‘΄μ¬νλ μ΄μ μ κ·ΌμμΌλ‘ λμκ°μ μ΄λ¬ν μ΄μ κ° μΈλΆ λͺ¨λμ μ ν©ν μ§ μ¬λΆλ₯Ό μ‘°μ¬ν΄μΌν©λλ€.
κ΅¬μ± : λ€μ μ€νμ΄μ€λ λ
Όλ¦¬μ μΌλ‘ κ΄λ ¨λ κ°μ²΄μ μ νμ κ·Έλ£Ήννλ λ° νΈλ¦¬ν©λλ€. μλ₯Ό λ€μ΄ C #μμλ λͺ¨λ 컬λ μ
μ νμSystem.Collections . μ νμ κ³μΈ΅ μ λ€μ μ€νμ΄μ€λ‘ ꡬμ±νμ¬ ν΄λΉ μ νμ μ¬μ©μμκ² μ’μ βλ°κ²¬βνκ²½μ μ 곡ν©λλ€.
μ΄λ¦ μΆ©λ : μ΄λ¦ 곡κ°μ μ΄λ¦ μΆ©λμ νΌνκΈ° μν΄ μ€μν©λλ€. μλ₯Ό λ€μ΄, λΉμ μ ν μ My.Application.Customer.AddFormμ My.Application.Order.AddFormλ κ°μ λμΌν μ΄λ¦μ κ°μ§ μ ν,νμ§λ§ λ€λ₯Έ λ€μ μ€νμ΄μ€λ₯Ό -. λͺ¨λ μλ³μκ° λμΌν λ£¨νΈ λ²μμ μκ³ λͺ¨λ μ΄μ
λΈλ¦¬κ° λͺ¨λ μ νμλ‘λνλ μΈμ΄μμλ λͺ¨λ κ²μ΄ λ€μ μ€νμ΄μ€μ μμ΄μΌν©λλ€.
μ΄λ¬ν μ΄μ λ μΈλΆ λͺ¨λμμ μλ―Έκ° μμ΅λκΉ?
κ΅¬μ± : μΈλΆ λͺ¨λμ μ΄λ―Έ νμΌ μμ€ν
μ μ‘΄μ¬ν©λλ€. κ²½λ‘μ νμΌ μ΄λ¦μΌλ‘ ν΄κ²°ν΄μΌνλ―λ‘ μ¬μ©ν μμλ λ
Όλ¦¬μ κ΅¬μ± μ²΄κ³κ° μμ΅λλ€. μ°λ¦¬λ /collections/generic/ν΄λλ₯Ό κ°μ§ μ μμ΅λλ€listλͺ¨λ .
μ΄λ¦ μΆ©λ : μ΄κ²μ μΈλΆ λͺ¨λμ μ ν μ μ©λμ§ μμ΅λλ€. λͺ¨λ λ΄ μμ κ°μ μ΄λ¦μ κ°μ§ λ κ°μ κ°μ²΄λ₯Ό κ°μ§λ§ν μ΄μ λ μμ΅λλ€. μλΉ μΈ‘λ©΄μμ νΉμ λͺ¨λ μ μλΉμ λ λͺ¨λμ μ°Έμ‘°νλ λ° μ¬μ©ν μ΄λ¦μ μ ννλ―λ‘ μ°μ°ν μ΄λ¦ μΆ©λμ΄ λΆκ°λ₯ν©λλ€.
λͺ¨λμ΄ μλνλ λ°©μμΌλ‘ μ΄λ¬ν μ΄μ κ° μ μ ν ν΄κ²°λμλ€κ³ μκ°νμ§ μλλΌλ μΈλΆ λͺ¨λμμ λ€μ μ€νμ΄μ€λ₯Ό μ¬μ©νλ €λ βμ루μ βμ μλνμ§ μμ΅λλ€.
μμμ μμμ μμ
μ΄μΌκΈ°:
μΉκ΅¬ Bobμ΄ μ νν©λλ€. βμ λ μ§μ μμ£Ό νλ₯ν μ‘°μ§ μ²΄κ³κ° μμ΅λλ€.β κΉλν, λ°₯μ΄ λ¬΄μ¨ μΌμνλμ§ ββ보μ.
λΆμμμ μμνμ¬ μλ£ν μ μ₯μ€μμ¬μμμ€. κ°κ° βPantryβλΌκ³ λ μ΄λΈμ΄ μ§μ λ 60 κ°μ μλ‘ λ€λ₯Έ μμκ° μμ΅λλ€. μμλ₯Ό 무μμλ‘ κ³¨λΌμ μ½λ λ€. λ΄λΆμλ β곑물βμ΄λΌλ λ¨μΌ μμκ° μμ΅λλ€. β곑물βμμλ₯Ό μ΄κ³ βνμ€νβλΌκ³ νμλ λ¨μΌ μμλ₯Ό μ°ΎμΌμμμ€. βνμ€νβμμλ₯Ό μ΄κ³ βνβμ΄λΌλ λ¨μΌ μμλ₯Ό μ°ΎμΌμμμ€. μ΄ μμλ₯Ό μ΄κ³ μμλλ‘ νλ€ νμ€ν ν λ΄μ§λ₯Ό μ°ΎμΌμμμ€.
μ½κ° νΌλλλ©΄ βPantryβλΌκ³ νμλ μΈμ μμλ₯Ό μ ννμμμ€. μμλ β곑물βμ΄λΌλ λ μ΄λΈμ΄ λΆμ λ¨μΌ μμκ° μμ΅λλ€. β곑물βμμλ₯Ό μ΄κ³ βνμ€νβλΌκ³ νμλ λ¨μΌ μμλ₯Ό λ€μ μ°Ύμ΅λλ€. βνμ€νβμμλ₯Ό μ΄κ³ νλμ μμλ₯Ό μ°ΎμΌμμμ€.μ΄ μμμλ βRigatoniβλΌλ λ μ΄λΈμ΄ λΆμ΄ μμ΅λλ€. μ΄ μμλ₯Ό μ΄κ³ λ¦¬κ° ν λ νμ€ν ν λ΄μ§λ₯Ό μ°ΎμΌμΈμ
βμ’μμ!β λ°₯μ΄ λ§ν©λλ€. βλͺ¨λ κ²μ΄ λ€μ μ€νμ΄μ€μ μμ΅λλ€!β.
βνμ§λ§ λ°₯ β¦βλΉμ μ΄ λλ΅ν©λλ€. βμ‘°μ§ κ΅¬μ±μ μΈλͺ¨κ° μμ΅λλ€. 무μμ΄λ μ»κΈ° μν΄ λ§μ μμλ₯Ό μ΄μ΄μΌν©λλ€. μ€μ λ‘ μΈ κ°κ° μλ ν μμ μ λͺ¨λ κ²μ λ£μ κ²λ³΄λ€ λ μ½κ² μ°Ύμ μλ μμ΅λλ€. . μ€μ λ‘, μλ£ν μ μ₯μ€μ μ΄λ―Έ μ λ°λ³λ‘ λΆλ₯λμ΄ μμΌλ―λ‘ μμκ° μ ν νμνμ§ μμ΅λλ€. μ λ°μ νμ€νλ₯Ό λκ³ νμν λ μ§μ΄ μ¬λ¦¬λ κ²μ΄ μ΄λ»μ΅λκΉ? β
βλΉμ μ μ΄ν΄νμ§ λͺ»ν©λλ€-λ€λ₯Έ λꡬλ βPantryβλ€μ μ€νμ΄μ€μ μνμ§ μμ κ²μ λ£μ§ μλλ‘ν΄μΌν©λλ€. κ·Έλ¦¬κ³ λͺ¨λ νμ€νλ₯Ό
Pantry.Grains.Pastaλ€μ μ€νμ΄μ€μ μμ νκ² μ 리νμ¬ μ½κ² μ°Ύμ μ μμ΅λλ€.βλ°₯μ λ§€μ° νΌλμ€λ¬μ΄ μ¬λμ λλ€.
λͺ¨λμ μ체 μμμ λλ€
μλ§λ μ€μ μν©μμ λΉμ·ν μΌμ΄ μμμ κ²μ λλ€. μλ§μ‘΄μμ λͺ κ°μ§ 물건μ μ£Όλ¬Ένλ©΄ κ° μμμ μμ μμκ° μκ³ μμμ ν¬μ₯λμ΄μλ κ° μμμ μ체 νλͺ©μ΄ νμλ©λλ€. λ΄λΆ μμκ° μ μ¬νλλΌλ λ°μ‘λ¬Όμ μ μ©νκ² βκ²°ν©βλμ§ μμ΅λλ€.
λ°μ€ μ μΆμ λ§μ°¬κ°μ§λ‘ μ£Όμ κ΄μ°° μ¬νμ μΈλΆ λͺ¨λμ΄ μ체 λ°μ€λΌλ κ² μ λλ€. λ§μ κΈ°λ₯μ κ°μ§ λ§€μ° λ³΅μ‘ν νλͺ© μΌ μ μμ§λ§ μ§μ λ μΈλΆ λͺ¨λμ μ체 μμμ λλ€.
μΈλΆ λͺ¨λμ λν μ§μΉ¨
μ΄μ βλ€μ μ€νμ΄μ€βλ₯Ό μ¬μ©ν νμκ° μλ€λ κ²μ μμμΌλ―λ‘ λͺ¨λμ μ΄λ»κ² ꡬμ±ν΄μΌν©λκΉ? λͺ κ°μ§ μ§μΉ¨ μμΉκ³Ό μκ° μ΄μ΄μ§λλ€.
κ°λ₯ν ν μ΅μμ μμ€μ κ°κΉκ² λ΄λ³΄λ΄κΈ°
- λ¨μΌ ν΄λμ€ λλ ν¨μ λ§ λ΄λ³΄λ΄λ κ²½μ° λ€μμ μ¬μ©νμμμ€
export default.
MyClass.ts
export default class SomeType {
constructor() { ... }
}
MyFunc.ts
function getThing() { return 'thing'; }
export default getThing;
μλΉ
import t from './MyClass';
import f from './MyFunc';
var x = new t();
console.log(f());
μ΄κ²μ μλΉμμκ² μ΅μ μ
λλ€. κ·Έλ€μ μνλλλ‘ ( tμ΄ κ²½μ°) λΉμ μ μ νμ μ΄λ¦μ μ§μ ν μ μμΌλ©° 물체λ₯Ό μ°ΎκΈ° μν΄ λΆνμν λν
μ ν νμκ° μμ΅λλ€.
- μ¬λ¬ κ°μ²΄λ₯Ό λ΄λ³΄λ΄λ κ²½μ° λͺ¨λ μ΅μμ λ 벨μ λμμμ€.
MyThings.ts
export class SomeType { ... }
export function someFunc() { ... }
μλΉ
import * as m from './MyThings';
var x = new m.SomeType();
var y = m.someFunc();
- λ§μ κ²μ λ΄λ³΄λ΄λ κ²½μ°μλ§
module/namespaceν€μλ λ₯Ό μ¬μ©ν΄μΌν©λλ€ .
MyLargeModule.ts
export namespace Animals {
export class Dog { ... }
export class Cat { ... }
}
export namespace Plants {
export class Tree { ... }
}
μλΉ
import { Animals, Plants} from './MyLargeModule';
var x = new Animals.Dog();
λΆμ κΉλ°
λ€μμ λͺ¨λ λͺ¨λ ꡬ쑰νλ₯Όμν μν μ νΈμ λλ€. λ€μ μ€ νλλΌλ νμΌμ μ μ©λλ κ²½μ° μΈλΆ λͺ¨λμ λ€μ μ€νμ΄μ€λ₯Ό λ§λ€μ§ μλμ§ λ€μ νμΈνμμμ€.
- μ΅μμ μ μΈ λ§μλ νμΌ
export module Foo { ... }(Fooλͺ¨λ κ²μ μ κ±° νκ³ λ 벨 μλ‘ μ΄λ) - λ¨μΌ νμΌμ΄
export classμκ±°λexport functionκ·Έλ μ§ μμ νμΌexport default export module Foo {μ΅μμ μμ€μμ λμΌν μ¬λ¬ νμΌ (μ΄ νμΌλ€μ΄ νλλ‘ κ²°ν© λ κ²μ΄λΌκ³ μκ°νμ§ λ§μμμ€Foo!)
λ΅λ³
μ무κ²λ λΌμ΄μΈμ λλ΅μ μλͺ»νμ§λ§ μ μ§ κ΄λ¦¬νλ λ°©λ²μ μ°Ύκ³ μ¬κΈ° μ¨ μ¬λλ€μμν νλμ ν΄λμ€ λΉ νμΌ μ¬μ ν μ λλ‘μ μ°Έμ‘°νμκΈ° λ°λλλ€ ES6 λ€μ μ€νμ΄μ€λ₯Ό μ¬μ©νλ λμ ꡬ쑰λ₯Ό μ΄ Microsoftμμ μ μ© μμ.
ν΄λΉ λ¬Έμλ₯Ό μ½μ ν λμκ² λΆλΆλͺ
ν κ°μ§μ
λλ€ : μ 체λ₯Ό κ°μ Έ μ€λ λ°©λ²μΌλ‘ λͺ¨λ (ν©λ³) νλ import .
μ΄ λ΅λ³μ μ
λ°μ΄νΈνλ €λ©΄ μνμ λ€μ νΈμ§νμμμ€ . λ€μ μ€νμ΄μ€μ λν λͺ κ°μ§ μ κ·Ό λ°©μμ΄ TSμ λ±μ₯ν©λλ€.
νλμ νμΌμμλ λͺ¨λ λͺ¨λ ν΄λμ€.
export namespace Shapes {
export class Triangle {}
export class Square {}
}
λ€μ μ€νμ΄μ€λ‘ νμΌ κ°μ Έ μ€κΈ° λ° μ¬ ν λΉ
import { Triangle as _Triangle } from './triangle';
import { Square as _Square } from './square';
export namespace Shapes {
export const Triangle = _Triangle;
export const Square = _Square;
}
λ°°λ΄
// ./shapes/index.ts
export { Triangle } from './triangle';
export { Square } from './square';
// in importing file:
import * as Shapes from './shapes/index.ts';
// by node module convention, you can ignore '/index.ts':
import * as Shapes from './shapes';
let myTriangle = new Shapes.Triangle();
λ§μ§λ§ κ³ λ € μ¬ν. λΉμ μ μμλ κ° νμΌμ λ€μ μ€νμ΄μ€
// triangle.ts
export namespace Shapes {
export class Triangle {}
}
// square.ts
export namespace Shapes {
export class Square {}
}
κ·Έλ¬λ λμΌν λ€μ μ€νμ΄μ€μμ λ κ°μ ν΄λμ€λ₯Ό κ°μ Έ μ€λ©΄ TSλ μ€λ³΅ μλ³μκ° μλ€κ³ λΆνν©λλ€. μ΄λ μ μΌν ν΄κ²°μ± μ λ€μ μ€νμ΄μ€μ λ³μΉμ μ§μ νλ κ²μ λλ€.
import { Shapes } from './square';
import { Shapes as _Shapes } from './triangle';
// ugh
let myTriangle = new _Shapes.Shapes.Triangle();
μ΄ μ¨λ¦¬μ΄μ±μ μ λμ μΌλ‘ λμ°νκΈ° λλ¬Έμ κ·Έλ κ²νμ§ λ§μμμ€. μμ μ κ·Ό λ°©μμ μ¬μ©νλ κ²μ΄ μ’μ΅λλ€. κ°μΈμ μΌλ‘ λλ βλ°°λ΄βμ μ νΈν©λλ€.
λ΅λ³
ν΄λλ³λ‘ μ 리ν΄λ³΄μμμ€.
baseTypes.ts
export class Animal {
move() { /* ... */ }
}
export class Plant {
photosynthesize() { /* ... */ }
}
dog.ts
import b = require('./baseTypes');
export class Dog extends b.Animal {
woof() { }
}
tree.ts
import b = require('./baseTypes');
class Tree extends b.Plant {
}
LivingThings.ts
import dog = require('./dog')
import tree = require('./tree')
export = {
dog: dog,
tree: tree
}
main.ts
import LivingThings = require('./LivingThings');
console.log(LivingThings.Tree)
console.log(LivingThings.Dog)
μμ΄λμ΄λ λͺ¨λ μμ²΄κ° λ€μ μ€νμ΄μ€μ μ°Έμ¬νκ³ μκ±°λ μ κ²½ μ°μ§ μμμΌνλ€λ κ²μ λλ€. κ·Έλ¬λ μ΄κ²μ νλ‘μ νΈμ μ¬μ©μ€μΈ λͺ¨λ μμ€ν μ νμ κ΄κ³μμ΄ μκ³ ν©λ¦¬μ μΈ λ°©μμΌλ‘ APIλ₯Ό μλΉμμκ² λ ΈμΆμν΅λλ€.
λ΅λ³
Albinofrenchy λ΅λ³μ μμ μν :
base.ts
export class Animal {
move() { /* ... */ }
}
export class Plant {
photosynthesize() { /* ... */ }
}
dog.ts
import * as b from './base';
export class Dog extends b.Animal {
woof() { }
}
things.ts
import { Dog } from './dog'
namespace things {
export const dog = Dog;
}
export = things;
main.ts
import * as things from './things';
console.log(things.dog);
λ΅λ³
OP λλ λΉμ κ³Ό ν¨κ» μμ΅λλ€. λ€μ ν λ², 300 κ° μ΄μμ ν¬νλ‘ κ·Έ λλ΅μλ μλ¬΄λ° λ¬Έμ κ° μμ§λ§ λ΄ μ견μ λ€μκ³Ό κ°μ΅λλ€.
-
ν΄λμ€λ₯Ό μλν λ°λ»ν νμΌμ κ°λ³μ μΌλ‘ λ£λ κ²μ μ΄λ€ λ¬Έμ μ λκΉ? μ΄κ²μ΄ λ μ 보μ΄κ² ν κ²μ λκΉ? (λλ λͺ¨λ λͺ¨λΈμμ 1000 μ€ νμΌμ μ’μνλ μ¬λ)
-
λ°λΌμ 첫 λ²μ§Έ νμΌμ κ°μ Έ μ€λ €λ©΄ import import import β¦ man, srsly, model νμΌ, .d.ts νμΌκ³Ό κ°μ κ° λͺ¨λΈ νμΌμμ importλ₯Ό κ°μ ΈμμΌν©λλ€. κ±°κΈ°μ? κ°λ¨νκ³ κΉλν΄μΌν©λλ€. μμ νμ΄ νμν μ΄μ λ 무μμ λκΉ? μ? C #μμ λ€μ μ€νμ΄μ€λ₯Ό μ»μμ΅λλ€.
-
κ·Έλ¦¬κ³ κ·ΈλκΉμ§ λ¬Έμ κ·Έλλ‘ βfilenames.tsβλ₯Ό μλ³μλ‘ μ¬μ©ν©λλ€. μλ³μλ‘μ β¦ 2017 λ μ μμ μμ§λ κ·Έλ κ²ν©λκΉ? μ΄λ§λ νμ±μΌλ‘ λμκ°μ 1000 λ λ μ μ μλ€.
μ¬νκ²λ λ΄ λλ΅μ : nop, λͺ¨λ κ°μ Έ μ€κΈ°λ₯Ό μ¬μ©νμ§ μκ±°λ ν΄λΉ νμΌ μ΄λ¦μ μλ³μλ‘ μ¬μ©νλ κ²½μ° βλ€μ μ€νμ΄μ€βλ₯Ό κΈ°λ₯μ μΌλ‘ λ§λ€ μ μμ΅λλ€ (μ€μ λ‘ λ°λ³΄λΌκ³ μκ°ν©λλ€). λ λ€λ₯Έ μ΅μ μ μ΄λ¬ν λͺ¨λ μ’ μμ±μ filenameasidentifier.tsλΌλ μμμ λ£κ³ μ¬μ©ν©λλ€.
export namespace(or module) boxInBox {} .
λ¨μν ν΄λμ€ μμμλ μ°Έμ‘°λ₯Ό μ»μΌλ €κ³ ν λ κ°μ μ΄λ¦μΌλ‘ λ€λ₯Έ ν΄λμ€μ μ‘μΈμ€νλ €κ³ νμ§ μλλ‘ λ©ννμμμ€.
λ΅λ³
μ΄ μ£Όμ μ κ΄λ ¨νμ¬ λ³Έ λͺ κ°μ§ μ§λ¬Έ / μ견μ λ§μΉ μ¬λμ΄ Namespaceβλͺ¨λ λ³μΉβμ μλ―Έ νλ κ³³μμ μ¬μ© νλ κ²μ²λΌ λ€λ¦½λλ€ . Ryan Cavanaughκ° μμ μ μ견 μ€ νλμμ μΈκΈνλ―μ΄ βλνΌβλͺ¨λλ‘ μ¬λ¬ λͺ¨λμ λ€μ λ΄λ³΄λΌ μ μμ΅λλ€.
λμΌν λͺ¨λ μ΄λ¦ / λ³μΉμμ λͺ¨λ κ°μ Έ μ€λ €λ©΄ λνΌ λͺ¨λμμ κ²½λ‘ λ§€νκ³Ό κ²°ν©νμμμ€ tsconfig.json.
μ:
./path/to/CompanyName.Products/Foo.ts
export class Foo {
...
}
./path/to/CompanyName.Products/Bar.ts
export class Bar {
...
}
./path/to/CompanyName.Products/index.ts
export { Foo } from './Foo';
export { Bar } from './Bar';
tsconfig.json
{
"compilerOptions": {
...
paths: {
...
"CompanyName.Products": ["./path/to/CompanyName.Products/index"],
...
}
...
}
...
}
main.ts
import { Foo, Bar } from 'CompanyName.Products'
μ°Έκ³ : μΆλ ₯ .js νμΌμ λͺ¨λ ν΄μλλ https://github.com/tleunen/babel-plugin-module-resolver μ κ°μ΄ μ΄λ»κ² λ μ²λ¦¬ν΄μΌν©λλ€.
.babelrcλ³λͺ
λΆμμ μ²λ¦¬νλ μ :
{
"plugins": [
[ "module-resolver", {
"cwd": "babelrc",
"alias": {
"CompanyName.Products": "./path/to/typescript/build/output/CompanyName.Products/index.js"
}
}],
... other plugins ...
]
}
λ΅λ³
μ΄ λ€μ μ€νμ΄μ€ λͺ¨λμ μ¬μ©ν΄λ³΄μμμ€
namespaceModuleFile.ts
export namespace Bookname{
export class Snows{
name:any;
constructor(bookname){
console.log(bookname);
}
}
export class Adventure{
name:any;
constructor(bookname){
console.log(bookname);
}
}
}
export namespace TreeList{
export class MangoTree{
name:any;
constructor(treeName){
console.log(treeName);
}
}
export class GuvavaTree{
name:any;
constructor(treeName){
console.log(treeName);
}
}
}
bookTreeCombine.ts
β μ»΄νμΌ λΆλΆ β
import {Bookname , TreeList} from './namespaceModule';
import b = require('./namespaceModule');
let BooknameLists = new Bookname.Adventure('Pirate treasure');
BooknameLists = new Bookname.Snows('ways to write a book');
const TreeLis = new TreeList.MangoTree('trees present in nature');
const TreeLists = new TreeList.GuvavaTree('trees are the celebraties');