Type error when putting functionality into a separate module
Opened this issue · 0 comments
djMax commented
I have a monorepo with a module dedicated to themes with a very simple signature:
import { registerThemes } from 'react-native-themed-styles';
import { useColorScheme } from 'react-native-appearance';
import * as themes from './themes';
export const styleSheetFactory = registerThemes(themes, () => {
const colorScheme = useColorScheme();
if (colorScheme === 'dark') {
return 'dark';
}
return 'light';
});
export { useTheme } from 'react-native-themed-styles';
When I have "declarations: true" in my tsconfig, which is generally good I assume, so that callers can get good typing, I get this error:
src/index.ts:5:14 - error TS4023: Exported variable 'styleSheetFactory' has or is using name 'StyleSheetData' from external module "/Users/memetral/dev/gb/app/node_modules/react-native-themed-styles/index" but cannot be named.
5 export const styleSheetFactory = registerThemes(themes, () => {
~~~~~~~~~~~~~~~~~
I'm a bit of a newcomer to Typescript, so I couldn't quite untangle why this was happening, but seems like it's because StyleSheetData and related types are not exported.