У меня есть этот кусок кода:
protected getCardContent = (message: string): JSX.Element => {
const { placeInfo } = this.props;
const TouchableComponent = Platform.OS === 'ios' ? TouchableOpacity : TouchableNativeFeedback
return (
<View>
<Text>{placeInfo.name}'s phone number:</Text>
<TouchableComponent onPress={() => {}}>
<Text>{placeInfo.phoneNumber}</Text>
</TouchableComponent>
</View>
)
}
При вызове this.getCardContent
в моем методе рендеринга он работает как на устройствах iOS, так и Android; однако TS жалуется, говоря:
const TouchableComponent: typeof TouchableOpacity | typeof TouchableNativeFeedback
JSX element type 'TouchableComponent' does not have any construct or call signatures.
Это потому, что TouchableComponent
может иметь любой тип конструктора, поэтому TS явно не знает, что такое экземплярный тип? Что может быть лучше для решения этой проблемы, которая работает с компилятором TS?