-
typescript(3) - λͺ¨λ , λ€μμ€νμ΄μ€μΉ κ°λ°/typescript 2023. 6. 25. 17:19
π λ€μμ€νμ΄μ€λ?
- λ΄λΆ λͺ¨λ
- νμ μ€ν¬λ¦½νΈλ§μ νΉμ ν λͺ¨λ λ°©λ²μΌλ‘μ¨ μ μ μ΄λ¦ 곡κ°κ³Ό λΆλ¦¬λ λ€μμ€νμ΄μ€ λ¨μμ μ΄λ¦κ³΅κ°μ λ»νλ€.
- ν΄λμ€λ μΈν°νμ΄μ€, κ°μ’ ν¨μ κ°μ λ΄μ©μ ν νμΌμμ κ·Έλ£Ήννμ¬ κ΄λ¦¬ ν μ μκ² ν΄μ£Όλ κ°λ μ
π± νμ
namespace λ€μμ€νμ΄μ€μ΄λ¦ { const λ³μμ΄λ¦ export function { } }
π μμ
// λ΄λΆμμ μ μΈν DOM μ΄λΌλ λͺ¨λ (λ€μμ€νμ΄μ€) namespace Dom { // μΈλΆμμ μ κ·Ό λΆκ° const variable = 123; // μΈλΆμμ μ κ·Ό κ°λ₯νλλ‘ export export function add(arg1: number, arg2: number): number { return arg1 + arg2; } // export νμ§ μμ λ€μμ€νμ΄μ€ λ΄λΆμ μ μλ ν¨μλ μΈλΆμμ μ κ·Ό λΆκ° function subtract(arg1: number, arg2: number): number { return arg1 - arg2; } } Dom.add(1,2); // 3
π λ€μμ€νμ΄μ€ λ©ν° νμΌ
- λ€μμ€νμ΄μ€ μ½λλ₯Ό λ¨ νλμ νμΌμμ κ΄λ¦¬ν νμλ μλ€.
A.ts νμΌ μ μ
namespace Dom { //μΈλΆμμ μ κ·Ό λΆκ° const variable =123; // μΈλΆμμ μ κ·Ό κ°λ₯νλλ‘ export ν΄μ£ΌκΈ° export function add(arg1 : number, arg2 : number) : number { return arg1 + arg2; } )
π B.ts νμΌ μ μ
namespace Dom{ export function sub(arg1: number1, arg2:number) : number { return arg1 - arg2; } }
- μ΄λ, Aμ Bλ₯Ό κ°μ΄ μ°κΈ° μν΄μ, (μν¬νΈν΄μ€κΈ° μν΄μ)
/// <reference path = "./A.ts"/> /// <reference path = "./B.ts" /> Dom.add(1,2); //3μ΄ μΆλ ₯λ©λλ€. Dom.sub(1,2); //-1μ΄ μΆλ ₯λ©λλ€.
λ€μκ³Ό κ°μ΄ μμ±μ΄ κ°λ₯νλ€.
π μν¬νΈ νμ
/// <reference path="<file.ts>" />
- λΉλ‘ νμΌμ΄ λ€λ₯΄λλΌλ, νλ‘μ νΈ λ΄μμ κ°μ λ€μμ€νμ΄μ€ λ΄μμλ μ΄λ¦μ μ€λ³΅ν΄ ν΄λμ€, ν¨μ, λ³μ λ±μ μ μΈνλ©΄ μ€λ₯κ° λλ€.
- λ€μμ€νμ΄μ€κ° λ€λ₯΄λ€λ©΄ λ³μ μ΄λ¦μ΄ κ°μλ μ΄λ¦ μΆ©λμ΄ μλ€.
λ€μμ€νμ΄μ€ μ€μ²©
- λ€μμ€νμ΄μ€ λ΄λΆμ λ€μμ€νμ΄μ€λ₯Ό μ μΈν μ μκ³ κ³΅κ°(export) ν μλ μμ΅λλ€.
- λ€μμ€νμ΄μ€ μμ λ€μμ€νμ΄μ€λ₯Ό λ§λλ κ²μ μ€μ²©μ΄λΌκ³ νλ€.
μμ
Dom.ts
namespace Dom { // μ€μ²©λ Events λ€μμ€νμ΄μ€ : 곡κ°λ λ€μμ€νμ΄μ€μ(exports) export namespace Events { export function on( el : Element|Document, type : string, handler : (e:Event)=>void, is_capture : boolean = false ):void { el.addEventListener(type, handler, is_capture); } export function off( el : Element|Document, type : string, handler : (e:Event)=>void, is_capture : boolean = false ):void { el.removeEventListener(type, handler, is_capture); } } }
Aliasing
- μ€μ²©λ λ€μμ€νμ΄μ€μ μ κ·ΌνκΈ° μν΄ μ½λκ° κΈΈμ΄μ§λ€λ©΄ λ³μΉμ λ§λ€μ΄ μ¬μ©ν μ μλ€.
- λ€μμ€νμ΄μ€μ λ³μΉμ λ§λ€ λμλ importλ₯Ό μ¬μ©νλ€.
νμ
/// <reference path="./Dom.ts" /> // Dom.Events λ€μμ€νμ΄μ€λ₯Ό import νμ¬ Events λ³μμ μ°Έμ‘° import Events = Dom.Events;
π λͺ¨λ
- νμΌ μ체 λ²μ λ΄μμ μ€νλλ©°, λͺ¨λ λ΄ μ μΈλ λ³μ, ν¨μ, ν΄λμ€ λ±μ λͺ μμ μΌλ‘ λ΄λ³΄λ΄μ§ μμΌλ©΄ λͺ¨λ μΈλΆμμ μ κ·Όνλ κ²μ΄ λΆκ°λ₯νλ€. (μμ λ€μμ€νμ΄μ€μ λκ°μ)
π λͺ¨λ λ΄λ³΄λ΄κΈ°
- λ΄λ³΄λ΄κ³ μ νλ λ³μ, ν¨μ, ν΄λμ€ μμ exportλ₯Ό λΆμ΄λ©΄ λλ€.
export function on( el : Element|Document, type : string, handler : (e:Event)=>void, is_capture : boolean = false ):void { el.addEventListener(type, handler, is_capture); } export function off( el : Element|Document, type : string, handler : (e:Event)=>void, is_capture : boolean = false ):void { el.removeEventListener(type, handler, is_capture); }
λͺ¨λ λΆλ¬μ€κΈ°
- μΈλΆ λͺ¨λμ λΆλ¬μ μ¬μ©νκΈ° μν΄μ import ꡬ문μ μ¬μ©ν μ μλ€.
- λΉκ΅¬μ‘°ν ν λΉμ μ¬μ©νμ¬ μμ ν¨μλ€μ λΆλ¬μ¨λ€.
app.ts
import { on, off } from './Dom/events'; on(document, 'click', (e) => document.body.style.background = '#912f03');
default λͺ¨λ μ¬μ©νκΈ°
- λͺ¨λ λ΄μμ λ΄λ³΄λΌ κ²λ€μ λ¬Άμ΄μ κΈ°λ³ΈμΌλ‘ λ΄λ³΄λ΄κΈ°κ° κ°λ₯νλ€.
Dom/selectors.ts
function el(selector:string, context:HTMLElement|Document = document): HTMLElement { return context.querySelector(selector); } function els(selector:string, context:HTMLElement|Document = document): NodeList { return context.querySelectorAll(selector); } export default { el, els };
default λͺ¨λ λΆλ¬μ€κΈ°
- defaultλ‘ λ΄λ³΄λ΄μ§ λͺ¨λμ import ꡬ문μμ μ°Έμ‘°ν λͺ¨λ μ΄λ¦(λ³μλͺ )μΌλ‘ μ€μ ν μ μλ€.
import Dom from './Dom/selectors'; import { on, off } from './Dom/events'; on(document, 'click', (e) => Dom.el('body').style.background = '#912f03');
'μΉ κ°λ° > typescript' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
typescript(5) - μΈν°νμ΄μ€ (0) 2023.06.25 Typescript(3) - ν΄λμ€ ν¨ν΄ (0) 2023.06.04 νμ μ€ν¬λ¦½νΈ(2) - ES6, ν΄λμ€ ν¨μ(1) (0) 2023.05.31 Typescript(1) - μ€μΉμ μμ (0) 2023.05.24