Nodejs 프로젝트를 하고 있기 때문에, Nodejs 한정 글임을 밝힌다. 구글 검색을 해봤는데, 정말 많은 글들이 나온다. 다 다르고 할때마다 다 안된다.
이것저것 해보다가 되는 방법을 찾았다. 결국 그 많은 글들 중에 하나였는데...예전 글이라서 안되는게 많았고, Nodejs가 아니라서 안되는 것도 있었다. 찾아보면서 느낀 건데, Javascript는 표준이 정말 자주 바뀐다.
Nodejs와 Typescript를 사용한다는 기준이다.
global에 함수를 추가하려면 어딘가에 선언을 해줘야 하기 때문에, d.ts 파일이 필요하다.
d.ts에 아래와 같이 선언한다.
1 | declare function _isArray(source: any): boolean; | cs |
그리고 ts 파일 하나를 만들고 위 함수의 구현부를 만들어준다.
1 2 3 4 5 | export = () => { global._isArray = function (source) { return soruce.constructor === Array } } //_type.ts | cs |
위 export 구문은 함수이고 함수를 실행하면 global에 _isArray 함수를 만들어준다.
그러므로 이 프로젝트의 시작부분에서 위 파일을 import해서 실행시켜줘야 한다.
1 2 | const _type = require("_type"); _type(); | cs |
이렇게 하면 코드를 분리했지만, 위와 같이 한번만 해주면 다른 곳에서도 전역으로 사용할 수 있다.
export 구문을 함수를 실행하는 것으로 변경하면 require만 해도 된다.
1 2 3 4 5 | export = (() => { global._isArray = function (source) { return soruce.constructor === Array } })() //_type.ts | cs |
1 | const _type = require("_type"); | cs |
이렇게 require만 하면 바로 global에 값이 세팅된다.
댓글 없음:
댓글 쓰기