рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рдВрд╕реНрдХрд░рдг: 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
}
});
рдпрд╣ https://github.com/Microsoft/TypeScript/pull/19966 рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ
рдпрд╣ рднреА рдорд╛рдорд▓рд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ: https://github.com/Microsoft/TypeScript/issues/21618#issuecomment -362945112
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рдореБрдЭреЗ рдХрд╛рд╕реНрдЯрд┐рдВрдЧ рдкрд╕рдВрдж рдирд╣реАрдВ рд╣реИ рдФрд░ рдЗрд╕реЗ рдЬрд┐рддрдирд╛ рд╕рдВрднрд╡ рд╣реЛ рдЙрддрдирд╛ рд░реЛрдХрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣рд╛рдВ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рд╣реИрдВ:
рдЬрдм рдХреЛрдИ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдирд┐рд░реНрдпрд╛рдд рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ (рдпрд╣рд╛рдБ: TextStyle), рд╣рдо рдХреЗрд╡рд▓ рдлрд╝реАрд▓реНрдб рдбрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВ: