Чтобы следовать другому ответу об управлении fontWeight с пользовательским шрифтом, я получаю следующий пользовательский Text
компонент:
import React from "react";
import { Text as BaseText, StyleSheet, TextProperties } from "react-native";
import Colors from "../constants/Colors";
interface Props extends TextProperties {
children: any
}
const styles = StyleSheet.create({
color: {
color: Colors.secondary,
},
normal: {
fontFamily: 'Lato-Regular',
},
bold: {
fontFamily: 'Lato-Bold',
},
});
const Text = ({ children, style, ...rest }: Props) => {
let baseFontStyle = styles.normal;
if (style) {
baseFontStyle = style.fontWeight === 'bold' ? styles.bold : styles.normal;
delete style.fontWeight;
}
return (
<BaseText
style={[baseFontStyle, styles.color, style]}
{...rest}
>
{children}
</BaseText>
);
};
export default Text;
Этот код работает, но Свойство style.fontWeight не распознается интерпретатором машинописного текста, встроенным в vs-код:
Property 'fontWeight' does not exist on type 'TextStyle | RegisteredStyle<TextStyle> | RecursiveArray<false | TextStyle | RegisteredStyle<TextStyle>>'.
Property 'fontWeight' does not exist on type 'RegisteredStyle<TextStyle>'.ts(2339)
Но мой интерфейс Props
расширяется TextProperties
.
Как с этим бороться?