TL 컴파일 된 PureScript 모듈에 대해 TypeScript 입력을 만들고이를 npm 패키지에 배포하려고합니다. 필자는 수동으로 이러한 타이핑을 유지하는 것보다 행복합니다. tsconfig.json (up 및 downstream) 및 package.json에 넣어야 할 사항을 파악할 수 없습니다.PureScript에서 컴파일 된 JavaScript 모듈을 사용하는 TypeScript 프로젝트는 어떻게 구성합니까?
나는 핵심 기능은 타이프 CLI와 PureScript에서 구현되는 project를 가지고 있고,이 모든 것이 궁극적으로 NPM을 통해 자바 스크립트로 배포됩니다. 내가 안전하게 타이프에서 그들을 사용할 수 있도록 내가 PureScript 모듈에 타이프 라이터 유형을 정의 types/People.d.ts
에서
module People where
type Person = { name :: String }
david :: Person
david = { name: "David "}
: src/People.purs
에서
.
├── cli # TypeScript CLI project
│ ├── main.ts
│ └── tsconfig.json
│
├── output # Compiled PureScript modules
│ └── People
│ ├── externs.json
│ └── index.js
│
├── src # PureScript source
│ └── People.purs
│
└── types # TypeScript types for PureScript modules
└── People.d.ts
내가 핵심 기능을 정의 : 나는 간단한 레이아웃과 similar project을 만들었습니다 :
declare module "People" {
export interface Person {
name: string;
}
export const david: Person;
}
마지막으로, cli/main.ts
에, 나는 TypeSc로 컴파일 된 PureScript 모듈을 가져올
import * as People from "People";
console.log(People.david);
내가이 구축 얻을 수 있지만 궁극적 인 자바 스크립트 (node cli/main.js
)를 실행하려고 할 때 절대 paths-를 사용하지 않기 때문에, tsc
에 의해 생성 된 require
호출이 실패 : ript 유형 I은 정의한 - require("People")
은이 경우 require("./People")
이어야합니다. TypeScript에서 import
문을 상대적으로 만들면 입력이 연결 해제됩니다.
나는이 목표를 달성 힘든 시간을 보내고 있습니다 :
- 는 타이프에서 가져온 모든 PureScript 모듈에 타이프 라이터의 typings을 유지한다.
- TypeScript가 유형 검사를하는지 확인하십시오.
- 런타임시
require
이 PureScript 모듈을 요구하는지 확인하십시오. - TypeScript 소비자가 이러한 입력을 사용할 수 있도록 npm 패키지로 TypeScript 입력을 배포하십시오.
TypeScript에서 PureScript 모듈을 필요로하고 npm을 통해이 모든 것을 배포 한 경험이 있다면 몇 가지 지침을 정말 고맙게 생각합니다!
아, 그래요, 오타가 있습니다.하지만 그건 문제가 아닙니다. 네가 제안한 수동 캐스팅을 시도했지만 효과가 있었다. 그러나 타이핑은 npm으로 배포되지 않았기 때문에 내 라이브러리의 클라이언트는 유형을 얻지 못했다. –