ds300/react-native-typescript-transformer

`target` is not used in an inherited TypeScript config.

ajcrites opened this issue · 3 comments

I'm not sure if this is specific to target or other options, but it's easiest to reproduce this way. I'm also not 100% sure that it's this transformer that's not using the target from an extended config, so I apologize if this wastes anyone's time, but I think I've narrowed it down.

For example, you may have a base config that looks like

{
  "compilerOptions": { "target": "es5" }
}

Then your tsconfig.json as { "extends": "./tsconfig.base.json" }.

If you use import { default as X } from 'lib'; ... <X /> then this gets transpiled to <lib_1['default'] /> which is an error.

If you update tsconfig.json to use target directly then it works as expected (<lib_1.default />).

ds300 commented

Ah, yes, we can see that the tsconfig loading strategy is embarrassingly naïve.

I'll switch to TypeStrong/tsconfig asap.

Thanks for the report!

ds300 commented

Hmm, didn't realise that TypeStrong/tsconfig also doesn't support the "extends" option. TypeStrong/tsconfig#21

Will have to do some more digging. Maybe I can use whatever TS itself uses to load config files.

+1 for extends. Thanks for the lib! I'll add a PR if I can get around to it.