TypeScript 연습 <1> -19-
________________________________________________________________________
TypeScript 블록체인 <4> - Definitely Typed
< 타입스크립트로 블록체인 만들어보기 - 블록체인 기능을 빌드해보자. >
폴더 : kimminsoo -> NomadCoders -> typechain_2
< 타입스크립트로 작성되지 않은 패키지를 import 할 때 어떻게 해야 할까 >
1.
________________________________
< 타입스크립트에서 allowJs 옵션 없이, 자바스크립트로 만들어진 패키지를 정의 파일(.d.ts) 없이 사용하는 법 >
<개요>
Crypto 패키지 안의 함수를 타입스크립트한테 설명해줄 파일이 필요하다.
헌데 타입스크립트에게 일일이 다 설명해 주고 싶지는 않아. 그럼에도 타입스크립트의 보호는 받고 싶어.
<목표>
자, 지금부터.
타입스크립트로 만들어지지 않은 패키지를 받았는데, 타입 정의가 하나도 없을 때, 어떻게 해야 하는지 배워보자.
우선, Definitely Typed 라는 레포에 가보자.
=> https://github.com/DefinitelyTyped/DefinitelyTyped
해당 깃허브 저장소는 많은 사람들이 사용하고 있는 “오직 타입 정의로만 이루어진” 저장소야.
그것도, npm 에 존재하는 거의 모든 패키지들에 대해서.
처음 주소로 들어가면 “ types “ 라는 폴더가 있을거야. 거기에 들어가 보자.
들어가면 a-z 까지 npm 패키지들의 타입 정의가 쫙 다 포함되어 있어.
Definitely Typed 이란.
=> 여러 자원봉사자가 참가한 레포.
시간이 날 때마다 npm 패키지의 오픈 소스 프로젝트에 가서 소스 코드를 분석한 다음에
타입스크립트에게 해당 패키지의 소스들이 어떤 타입을 가지고 있는지 설명해 주기 위해 일일이 JSDoc 으로 주석을 달아 준거지.
crypto 는 node 가 기본적으로 제공해 주는 암호화 내장 모듈이야.
Crypto 의 정의 파일의 주소는 다음과 같아.
=> https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/node/crypto.d.ts
콘솔을 통해서 해당 파일을 설치할 수 있어.
——
npm i -D @types/node
——
=> 이러면 Crypto 뿐 아니라 nodes 내장 모듈을 위한 정의 파일들을 모두 다 설치해 줄거야.
types/ 뒤에는 내가 설치하고 싶은 npm 패키지 이름을 입력하면 오케이.
최근에는 패키지를 만드는 사람들은 npm 패키지를 설치하면 .d.ts 파일을 함께 포함시키는 경우가 많아.
이제 아무런 문제 없이 Crypto 를 사용할 수 있어.