`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 />
).
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!
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.