diff --git a/types/react-native/index.d.ts b/types/react-native/index.d.ts index ad15aba6a5..048e34b872 100644 --- a/types/react-native/index.d.ts +++ b/types/react-native/index.d.ts @@ -5218,6 +5218,20 @@ export namespace StyleSheet { export function flatten(style?: StyleProp): ImageStyle; export function flatten(style?: StyleProp): ViewStyle; + /** + * WARNING: EXPERIMENTAL. Breaking changes will probably happen a lot and will + * not be reliably announced. The whole thing might be deleted, who knows? Use + * at your own risk. + * + * Sets a function to use to pre-process a style property value. This is used + * internally to process color and transform values. You should not use this + * unless you really know what you are doing and have exhausted other options. + */ + export function setStyleAttributePreprocessor( + property: string, + process: (nextProp: any) => any + ): void; + /** * This is defined as the width of a thin line on the platform. It can be * used as the thickness of a border or division between two elements. diff --git a/types/react-native/test/index.tsx b/types/react-native/test/index.tsx index b2b66ee2da..a16d6f3e4d 100644 --- a/types/react-native/test/index.tsx +++ b/types/react-native/test/index.tsx @@ -153,6 +153,8 @@ const stylesAlt = StyleSheet.create({ }, }); +StyleSheet.setStyleAttributePreprocessor('fontFamily', (family: string) => family); + const welcomeFontSize = StyleSheet.flatten(styles.welcome).fontSize; const viewStyle: StyleProp = {