자바 스크립트에서 타입 스크립트 선언 파일 생성
예를 들어 npm 라이브러리가 있다고 가정 해 보겠습니다. 제 경우 mongoose
에는 어떻게 d.ts
파일을 생성 하시겠습니까?
JavaScript는 TypeScript 컴파일러가 코드의 구조를 추론하기에 충분한 유형 정보를 항상 포함하지 않으므로 JavaScript를 기반으로 정의를 자동으로 생성하는 것은 거의 옵션이 아닙니다.
여기에 처음부터 작성하는 방법에 대한 지침이 있습니다.
https://www.stevefenton.co.uk/2013/01/complex-typescript-definitions-made-easy/
그러나 작동 할 수있는 트릭이 하나 있습니다 (제한된 경우에만 작동 함).
JavaScript를 새 TypeScript 파일에 붙여넣고 발생할 수있는 사소한 오류를 수정하고 정의 플래그를 사용하여 컴파일하면 최소한 시작점이 될 파일을 얻을 수 있습니다.
tsc --declaration js.ts
질문은 조금 오래되었지만 저와 같은 검색 엔진에서 오는 사람들을 위해 자동화 도구를 찾고 있다면 다음을 확인하십시오.
-
Microsoft가 형식을 만들 때 사용하는 공식 시작점입니다. 그래도 출발점 일 뿐이고 그저 그다지 운이 좋지는 않았어요
-
이것은 매우 유망 해 보입니다. 일부 편집자가 JS 코드에 대한 자동 완성을 제공하는 데 사용하는 Ternjs에 따라 다릅니다.
다른 도구 이름과 그와의 비교도 확인하십시오.
Google을 통해이 게시물을 찾는 다른 사람들을 위해 : 이제 Microsoft 자체 생성기가 있습니다 : dts-gen .
TypeScript 파일에서 타사 JavaScript 라이브러리를 사용하려는 경우 프로젝트 어디에서나 사용자 지정 (그리고 거의 비어있는) 선언 파일을 만들 수 있습니다.
예를 들어 다음을 가져 오려는 경우 :
import * as fooLibrary from 'foo-lib';
다음 내용으로 'foo-lib.d.ts'라는 새 파일을 만듭니다.
declare module 'foo-lib' {
var fooLibrary: any;
export = fooLibrary;
}
제 3 자의 난독 화 된 코드로 작업하는 특정 상황에서는 페이지에 스크립트를로드 한 다음 콘솔을 사용하여 난독 화 된 클래스의 인스턴스를 기록하는 것이 유용하다는 것을 알았습니다. 콘솔은 정의 파일의 시작점으로 복사하여 사용할 수있는 클래스 메서드 및 속성에 대한 깔끔한 요약을 제공합니다.
> o = new ObfuscatedClass()
> console.log(o)
ObfuscatedClass
- methodA(a,b){some implementation}
- methodB(a,b){other implementation} etc
붙여넣고 편집 할 수있는
declare class ObfuscatedClass {
methodA(a,b);
methodB(a,b);
}
" npm-dts "NPM 패키지를 살펴볼 수 있습니다 . NPM 패키지에 대한 단일 index.d.ts 파일을 생성하여 다른 TypeScript 패키지에서 즉시 사용할 수있는 도구입니다.
참고 URL : https://stackoverflow.com/questions/18301898/generating-typescript-declaration-files-from-javascript
'development' 카테고리의 다른 글
파이썬에서 dir과 __dict__의 가장 큰 차이점은 무엇입니까 (0) | 2020.12.04 |
---|---|
IIS는 시작된 URL과 일치하는 웹 사이트를 나열하지 않습니다. (0) | 2020.12.04 |
메이븐 프로젝트를 Dockerize하는 방법? (0) | 2020.12.04 |
Azure WebJobs SDK를 사용한 종속성 주입? (0) | 2020.12.04 |
파이썬 모듈을 가져 왔는지 확인하는 방법은 무엇입니까? (0) | 2020.12.04 |