rescript-lang / rescript-compiler

The compiler for ReScript.
https://rescript-lang.org
Other
6.68k stars 445 forks source link

Missing type for `exn` #6363

Open sgrove opened 1 year ago

sgrove commented 1 year ago

Exporting a function like:

@genType
let basicEvalNode = (
  ~onError: exn => unit,
) => {

Outputs the following TypeScript:

export const basicEvalNode: (_1: {
  readonly onError: (_1: exn) => void;

But exn is never defined/imported, so we get an error:

src/HyperEval.gen.tsx:38:17 - error TS2304: Cannot find name 'exn'.
38   onError: (_1: exn) => void,

It'd be nice to even export it as unknown, since that would allow TypeSCript to continue


One small hack I've found is to make a type alias but mark it opaque and use that instead, e.g.:

@genType.opaque
type userExn = exn

Obviously not ideal from the Javascript/Typescript side of things, but it means TypeScript can at least compile and doesn't block things for a bit.

github-actions[bot] commented 1 month ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

fhammerschmidt commented 1 month ago

Not yet bot!