Skip to content

Typescript failing when passing a StyleSheet to an Image style. #21928

Closed
@ethanneff

Description

@ethanneff

Environment


  React Native Environment Info:
    System:
      OS: macOS 10.14
      CPU: x64 Intel(R) Core(TM) i7-7700HQ CPU @ 2.80GHz
      Memory: 34.65 MB / 16.00 GB
      Shell: 3.2.57 - /bin/bash
    Binaries:
      Node: 8.11.2 - /usr/local/bin/node
      Yarn: 1.10.1 - /usr/local/bin/yarn
      npm: 6.4.1 - /usr/local/bin/npm
      Watchman: 4.9.0 - /usr/local/bin/watchman
    SDKs:
      iOS SDK:
        Platforms: iOS 12.0, macOS 10.14, tvOS 12.0, watchOS 5.0
      Android SDK:
        Build Tools: 23.0.1, 23.0.3, 25.0.0, 25.0.1, 25.0.2, 26.0.1, 26.0.2, 26.0.3, 27.0.3, 28.0.0, 28.0.1, 28.0.2
        API Levels: 22, 23, 24, 25, 26, 27, 28
    IDEs:
      Android Studio: 3.1 AI-173.4907809
      Xcode: 10.0/10A255 - /usr/bin/xcodebuild
    npmPackages:
      @storybook/react-native: 3.4.11 => 3.4.11
      @types/react: 16.4.18 => 16.4.18
      @types/react-native: 0.57.7 => 0.57.7
      react: 16.6.0 => 16.6.0
      react-native: 0.57.3 => 0.57.3
    npmGlobalPackages:
      create-react-native-app: 2.0.2
      create-react-native-web-app: 0.1.6
      react-native-cli: 2.0.1
      react-native-git-upgrade: 0.2.7

Description

Typescript failing when passing a StyleSheet to an Image style

Reproducible Demo

Example from here https://facebook.github.io/react-native/docs/image

import React, { Component } from 'react';
import { AppRegistry, View, Image, StyleSheet } from 'react-native';

const styles = StyleSheet.create({
  stretch: {
    width: 50,
    height: 200
  }
});

export default class DisplayAnImageWithStyle extends Component {
  render() {
    return (
      <View>
        <Image
          style={styles.stretch}
          source={require('/react-native/img/favicon.png')}
        />
      </View>
    );
  }
}

// skip these lines if using Create React Native App
AppRegistry.registerComponent(
  'DisplayAnImageWithStyle',
  () => DisplayAnImageWithStyle
);

Error found here:

- error TS2322: Type 'RegisteredStyle<ViewStyle | TextStyle | ImageStyle>' is not assignable to type 'StyleProp<ImageStyle>'.
  Type 'RegisteredStyle<ViewStyle | TextStyle | ImageStyle>' is not assignable to type 'RecursiveArray<false | ImageStyle | RegisteredStyle<ImageStyle> | null | undefined>'.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions