import export 사용
(a.ts)
export var 이름 = 'hong';
export var 나이 = 20;
(b.ts)
import {이름, 나이} from './a'
console.log(이름)
두 개 이상의 파일로 모듈화를 한 경우, 서로 변수를 주고받기 위해서
export 내보내고 import 가져오는 방법이다.
import * from './a';
import *을 하면 모든 데이터를 가져올 수 있다.
(a.ts)
export type Name = string | boolean;
export type Age = (a :number) => number;
(b.ts)
import {Name, Age} from './a'
let 이름 :Name = 'kim';
let 함수 :Age = (a) => { return a + 10 }
물론 타입도 주고받을 수 있다.
인터페이스, 함수, 클래스도 가능
namespace 문법
(a.ts)
namespace MyNamespace {
export interface PersonInterface { age : number };
export type NameType = number | string;
}
(b.ts)
/// <reference path="./a.ts" />
let 이름 :MyNamespace.NameType = '민수';
let 나이 :MyNamespace.PersonInterface = { age : 10 };
지금은 잘 쓰지 않는 방식이지만,
네임스페이스 괄호 안에 묶는 방법으로 변수나 타입을 숨길 수 있다.
=> 변수 이름의 중복성 방지
<reference /> 태그는 import랑 유사한 문법이라고 보면 된다.
현재는 import as 키워드를 사용하면 namespace 역할을 수행할 수 있다.
=> 자바스크립트 es6 버전 이상
namespace를 처음 들었을 때는 C++에서 배웠던 방식인가? 하고 내심 반가웠다.
더 옛날에는 namespace를 module키워드라고 칭했다고 한다.
module => namespace => import as 점점 편해지는 방식이 추구되지만,
유지보수를 하기 위한 작업에서는 분명 옛날코드도 마주치기 마련이니까.
알아두면 쓸모는 있지않을까 ?!
'TypeScript' 카테고리의 다른 글
React + TypeScript 타입지정 (0) | 2023.07.04 |
---|---|
타입을 파라미터로 입력하려면? Generic 문법 (0) | 2023.07.04 |
protected, static 키워드 (0) | 2023.07.03 |
public, private 키워드 (0) | 2023.07.03 |
Narrowing 추가적인 방법들 (0) | 2023.07.03 |