Ts-jest: Constant enums are not compiled

Created on 6 Feb 2017  路  9Comments  路  Source: kulshekhar/ts-jest

Hi guys. Imagine I have tsconfig.json like

{
    "compilerOptions": {"...whatever"},
    "includes": [
        "src/**/*"
    ]
}

and i have constant enum in src/data.d.ts

declare const enum Foo {
    Bar = 1,
}

then simply src/index.ts

export const Bar = Foo.Bar;

tsc's output for index.ts is exports.Bar = 1 /* Bar */; but in indexSpec.tsx

import { Bar } from "./";
describe("Bar", () => {
    it("is defined", () => {
        expect(Bar).toBeDefined();
    });
});

I've got ReferenceError: Foo is not defined. Is it possible to make this work?

Most helpful comment

@rikkit I'm a bit hesitant because this doesn't seem to be a ts-jest issue. On the other hand, I see the point in adding a note if there are a lot of people running into this issue.

Any PRs which update the README accordingly are welcome

All 9 comments

Would it be possible for you to create a small repo that can reproduce this issue?

Please check tsc and npm t in the repo above @kulshekhar

I just browsed through the linked repo. Isn't this more of a Typescript issue than something that's ts-jest specific?

Can be. I'll take a closer look during this week. Let's keep it open

@kulshekhar you right, this is default behaviour. So It shouldn't substitute constant enums even it it's <reference />d or defined in the same file

It's not clear whether there was a workaround for this or just SOL?

I'm consuming a third party library that exports constant enums, same result TypeError: Cannot read property 'X' of undefined because they are not inlined and no runtime code for them exists.

@jayphelps in the linked repo, if the enum is exported and imported, it works fine. Is that possible in your case? A tiny repo with your issue would be the best way to see if we can get this working

@r00ger can this get added to the readme? It's non obvious behaviour and it seems a lot of people spend time searching for the cause.

@rikkit I'm a bit hesitant because this doesn't seem to be a ts-jest issue. On the other hand, I see the point in adding a note if there are a lot of people running into this issue.

Any PRs which update the README accordingly are welcome

Was this page helpful?
0 / 5 - 0 ratings