Typescript: TS2322: '' рдирд┐рд░рдкреЗрдХреНрд╖ '' рдЯрд╛рдЗрдк рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП 'рд╕реНрдЯреНрд░рд┐рдВрдЧ' рдЯрд╛рдЗрдк рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдирд╣реАрдВ рд╣реИ "рд░рд┐рд╢реНрддреЗрджрд╛рд░" | рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд '

рдХреЛ рдирд┐рд░реНрдорд┐рдд 9 рдЕрдХреНрддреВре░ 2016  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: microsoft/TypeScript

рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рдВрд╕реНрдХрд░рдг: 2.1.0-dev.20161008

рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╕реНрдкрд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдиреНрдпреВрдирддрдо рдЕрднрд┐рдХреНрд░рд┐рдпрд╛рддреНрдордХ рдШрдЯрдХ:

import React, { Component } from 'react';
import { StyleSheet, Text } from 'react-native';

export class Sample extends Component<{}, {}> {
    render() {
        return (
            <Text style={styles.text}>Hello TypeScript</Text> // error on styles, see below
        );
    }
}

const styles = StyleSheet.create({
    text: {
        position: 'absolute', // cause of the error: string instead of 'absolute'
        top: 0,
        left: 0     
    }
});

рддреНрд░реБрдЯрд┐:

error TS2322: Type '{ position: string; top: number; left: number; }' is not assignable to type 'TextStyle | undefined'.
  Type '{ position: string; top: number; left: number; }' is not assignable to type 'TextStyle'.
    Types of property 'position' are incompatible.
      Type 'string' is not assignable to type '"absolute" | "relative" | undefined'.

рдореБрдЭреЗ рдпрд╣ рдкрд╕рдВрдж рд╣реИ рдХрд┐ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рддреНрдордХ рдШреЛрд╖рдгрд╛ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддреА рд╣реИ, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рд╕рдВрднрд╛рд╡рд┐рдд рддрд╛рд░реЛрдВ рдХреЗ рд╕реЗрдЯ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИред

рдХреНрдпрд╛ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ 'рдирд┐рд░рдкреЗрдХреНрд╖' рдЯрд╛рдЗрдк рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдмрддрд╛рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рд╣реИ?
рд╢рд╛рдпрдж рдЕрдЧрд░ рдореИрдВ рдЗрд╕ position рдХреНрд╖реЗрддреНрд░ рдХреЛ рдЖрд╕рд╛рдиреА рд╕реЗ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ, рддреЛ рдпрд╣ 'рдирд┐рд░рдкреЗрдХреНрд╖' рдЯрд╛рдЗрдк рдХрд░ рд╕рдХрддрд╛ рд╣реИред

# 10676 рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд?

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдореБрдЭреЗ рдХрд╛рд╕реНрдЯрд┐рдВрдЧ рдкрд╕рдВрдж рдирд╣реАрдВ рд╣реИ рдФрд░ рдЗрд╕реЗ рдЬрд┐рддрдирд╛ рд╕рдВрднрд╡ рд╣реЛ рдЙрддрдирд╛ рд░реЛрдХрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣рд╛рдВ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рд╣реИрдВ:

const styles = StyleSheet.create({
    text: {
        position: 'absolute',
        top: 0,
        left: 0     
    } as React.TextStyle // cast to existing interface
});

рдЬрдм рдХреЛрдИ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдирд┐рд░реНрдпрд╛рдд рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ (рдпрд╣рд╛рдБ: TextStyle), рд╣рдо рдХреЗрд╡рд▓ рдлрд╝реАрд▓реНрдб рдбрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВ:

const styles = StyleSheet.create({
    text: {
        position: 'absolute' as 'absolute', // cast string to type 'absolute'
        top: 0,
        left: 0     
    }
});

рд╕рднреА 3 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдореБрдЭреЗ рдХрд╛рд╕реНрдЯрд┐рдВрдЧ рдкрд╕рдВрдж рдирд╣реАрдВ рд╣реИ рдФрд░ рдЗрд╕реЗ рдЬрд┐рддрдирд╛ рд╕рдВрднрд╡ рд╣реЛ рдЙрддрдирд╛ рд░реЛрдХрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣рд╛рдВ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рд╣реИрдВ:

const styles = StyleSheet.create({
    text: {
        position: 'absolute',
        top: 0,
        left: 0     
    } as React.TextStyle // cast to existing interface
});

рдЬрдм рдХреЛрдИ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдирд┐рд░реНрдпрд╛рдд рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ (рдпрд╣рд╛рдБ: TextStyle), рд╣рдо рдХреЗрд╡рд▓ рдлрд╝реАрд▓реНрдб рдбрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВ:

const styles = StyleSheet.create({
    text: {
        position: 'absolute' as 'absolute', // cast string to type 'absolute'
        top: 0,
        left: 0     
    }
});

рдпрд╣ https://github.com/Microsoft/TypeScript/pull/19966 рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ

рдпрд╣ рднреА рдорд╛рдорд▓рд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ: https://github.com/Microsoft/TypeScript/issues/21618#issuecomment -362945112

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕