Material-ui: рдХреНрдпрд╛ рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ рд╕реБрдзрд╛рд░ рдХреЗ рд▓рд┐рдП рдЯрд╛рдЗрдкрд┐рдВрдЧ рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ?

рдХреЛ рдирд┐рд░реНрдорд┐рдд 7 рдЬрдире░ 2020  ┬╖  70рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: mui-org/material-ui

рдЬреИрд╕рд╛ рдХрд┐ # 18128 рдореЗрдВ @ eps1lon рджреНрд╡рд╛рд░рд╛ рд╕реБрдЭрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рд╕рд╛рдордЧреНрд░реА-рдпреВрдЖрдИ рдЯрд╛рдЗрдкрд┐рдВрдЧ рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЬрдЧрд╣ рдХреЗ рд░реВрдк рдореЗрдВ рдмрдирд╛ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдХреНрдпрд╛ рдЙрдиреНрд╣реЗрдВ рдЬрд╛рдВрдЪрдиреЗ рдореЗрдВ рд▓рдЧрдиреЗ рд╡рд╛рд▓реЗ рд╕рдордп рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдиреНрд╣реЗрдВ рд╕рд░рд▓ рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЦрд╛рд╕рдХрд░ рд╕рдВрдкрд╛рджрди рдХреЗ рджреМрд░рд╛рдиред

рд╕рдмрд╕реЗ рд╕рдЯреАрдХ рдкреНрд░рдХрд╛рд░ (рдЬреЛ рд╕рд░реНрд╡реЛрддреНрддрдо рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдФрд░ рд╕рдВрдкрд╛рджрдХ рдкреВрд░реНрдгрддрд╛ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВ) рдФрд░ рддреЗрдЬрд╝ рдкреНрд░рдХрд╛рд░ рдХреА рдЬрд╛рдВрдЪ (рд╕реНрдкреЗрдХреНрдЯреНрд░рдо рдХрд╛ рд╕рдмрд╕реЗ рджреВрд░ any ) рд╣реЛрдиреЗ рдХреЗ рдмреАрдЪ рд╣рдореЗрд╢рд╛ рдПрдХ рддрдирд╛рд╡ рд╣реЛрддрд╛ рд╣реИред
https://github.com/microsoft/TypeScript/issues/34801 рдЬреИрд╕реЗ рдореБрджреНрджреЛрдВ рд╕реЗ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рд╕рд╛рдордЧреНрд░реА-рдпреВрдЖрдИ рдХреЛ рдХреБрдЫ рдкреВрд░реНрдгрддрд╛ рд╣рд╛рд╕рд┐рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдЯреАрдХрддрд╛ рдХреЛ рдХрдо рдХрд░рдиреЗ рд╕реЗ рд▓рд╛рдн рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рдЕрдм рддрдХ рдореИрдВрдиреЗ рдЬрд┐рди рд░реЗрдкреНрд░реЛрд╕ рдХреА рдЬрд╛рдВрдЪ рдХреА рд╣реИ, рдЙрдирдореЗрдВ рд╕реЗ рдмрд╣реБрдд рд╕реА рд╕реБрд╕реНрддреА рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд╕реАрдПрд╕рдПрд╕ рд╕рдВрдкрддреНрддрд┐ рдХреЗ рдирд╛рдореЛрдВ рд╕реЗ рдЖрддреА рд╣реИ (рджреЗрдЦреЗрдВ https://github.com/mui-org/material-ui/blob/master/packages/ рд╕рд╛рдордЧреНрд░реА-рдпреВрдЖрдИ-рд╢реИрд▓реА/src/withStyles/withStyles.d.ts)ред рд╕реНрд╡рдпрдВ рдПрдХ рд╕рдХреНрд░рд┐рдп CSS рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╣реАрдВ рд╣реЛрдиреЗ рдХреЗ рдХрд╛рд░рдг, рдореЗрд░реЗ рдХреБрдЫ рд╕рд░рд▓ рдкреНрд░рд╢реНрди рд╣реИрдВ:

1) рдХреНрдпрд╛ рдореИрдВ рдпрд╣ рдорд╛рдирдиреЗ рдореЗрдВ рд╕рд╣реА рд╣реВрдВ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рд╕рд┐рджреНрдз рд╕реАрдПрд╕рдПрд╕ рд╕рдВрдкрддреНрддрд┐ рдХреЗ рд▓рд┐рдП рдПрдХ рдирд╛рдо рдФрд░ рдкреНрд░рдХрд╛рд░ рд╣реЛрдирд╛ рдЕрд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд░реВрдк рд╕реЗ рдореВрд▓реНрдпрд╡рд╛рди рд╣реИ рдФрд░ рдРрд╕рд╛ рдХреБрдЫ рдирд╣реАрдВ рд╣реИ рдЬрд┐рд╕реЗ рд╣рдо рдЫреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ?
2) CSSProperties рдкреНрд░рдХрд╛рд░ "рдЫрджреНрдо рдЪрдпрдирдХрд░реНрддрд╛рдУрдВ рдФрд░ рдореАрдбрд┐рдпрд╛ рдкреНрд░рд╢реНрдиреЛрдВ" рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореМрдЬреВрдж рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ, рдЬреЛ - рдореЗрд░реЗ рд╕реАрдорд┐рдд рдкрдврд╝рдиреЗ рдХреЗ рдЕрдиреБрд╕рд╛рд░ - рдЕрддрд┐рд░рд┐рдХреНрдд рд╕реАрдПрд╕рдПрд╕ рдЧреБрдгреЛрдВ рдХреЗ рдмреИрдЧ рдХреЗ рдирд╛рдо рд╕реЗ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИред
рдХ) рдХреНрдпрд╛ рдпреЗ рдереИрд▓реЗ рд╕реНрд╡рдпрдВ рдкреБрдирд░рд╛рд╡рд░реНрддреА рд╣реИрдВ рдпрд╛ рдХреЗрд╡рд▓ рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдкрд░рдд рд╣реИ? рдпрд╛рдиреА, рдХреНрдпрд╛ рдЖрдк width рд╕реЗ foo.width рдпрд╛ foo.bar.width рдЖрджрд┐ рдкрд░ рдЬрд╛рддреЗ рд╣реИрдВ? рдпрджрд┐ рдпрд╣ рд╕рд┐рд░реНрдл рдПрдХ рд╕реНрддрд░ рд╣реИ, рддреЛ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдиреЗ рд╕реЗ рдореЗрд░реЗ рд╕реНрдерд╛рдиреАрдп рд░реЗрдкреНрд░реЛ рдХреЛ 4.6 рд╕реЗрдХрдВрдб рд╕реЗ рдШрдЯрд╛рдХрд░ 3.6 рд╕реЗрдХрдВрдб (рдпрд╛рдиреА рдмрдбрд╝реА рдЬреАрдд) рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдмреА) рдореИрдВрдиреЗ рд╕реНрд╡рдпрдВ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде рдЦреЗрд▓рд╛ рдФрд░ BaseCSSProperties[keyof BaseCSSProperties] рд╕реЗ рдмреЗрд╣рддрд░ рдХреБрдЫ рднреА рдирд╣реАрдВ рдЖрдпрд╛, рд▓реЗрдХрд┐рди - рдЬреИрд╕рд╛ рдХрд┐ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ - рдпрд╣ рдПрдХ рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рдкреНрд░рдХрд╛рд░ рдирд╣реАрдВ рд╣реИред рдпрд╣ рдореВрд▓ рд░реВрдк рд╕реЗ рдХрд╣рддрд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕реА рднреА рд╕реАрдПрд╕рдПрд╕ рд╕рдВрдкрддреНрддрд┐ рдореЗрдВ рдХрд┐рд╕реА рднреА (рдЕрдиреНрдп) рд╕реАрдПрд╕рдПрд╕ рд╕рдВрдкрддреНрддрд┐ рдХрд╛ рдкреНрд░рдХрд╛рд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ - рдпрд╣ рдХреЗрд╡рд▓ any рд╕реЗ рдереЛрдбрд╝рд╛ рдмреЗрд╣рддрд░ рд╣реИред
3) StyleRules , рдпрджрд┐ рдХреЛрдИ рд╕рдВрдкрддреНрддрд┐ рдирд╣реАрдВ рд╣реИ, рддреЛ рдЖрдкрдХреЛ CSSProperties рдпрд╛ () => CSSProperties (рдЬрд┐рд╕реЗ рдореИрдВ рдзреАрд░реЗ-рдзреАрд░реЗ "рдердВрдХреЗрдб CSSProperties" рдХрд╣реВрдВрдЧрд╛), рдЬреЛ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ - CSSProperties рдЖрд▓рд╕реА рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдпрджрд┐ рдЧреБрдг рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ CreateCSSProperties<Props> , рдЬреЛ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ - Props рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП CSSProperties - рдпрд╛ (props: Props) => CreateCSSProperties<Props> рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ, рдЬреЛ рдореИрдВрдиреЗ рдХрд┐рдпрд╛ рдерд╛ 'рд╕рдордЭ рдореЗрдВ рдирд╣реАрдВ рдЖрддрд╛ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдкреНрд░рднрд╛рд╡реА рд░реВрдк рд╕реЗ рджреЛрд╣рд░рд╛-рдЖрд▓рд╕реА рд╣реИ - рдЖрдкрдиреЗ Props рдПрдХ рдмрд╛рд░ CreateCSSProperties рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдФрд░ рдлрд┐рд░ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдЧреБрдг рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╛рд╕ рдХрд┐рдпрд╛ рд╣реИред рдпрд╣ "рдбрдмрд▓ рдердВрдХреЗрдб" рдХреНрдпреЛрдВ рд╣реИ?

рдЕрд▓рдЧ рд╕реЗ, рдореБрдЭреЗ рд╕рдВрджреЗрд╣ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрднреА рддрдХ рдпрд╣ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдирд╛ рдмрд╛рдХреА рд╣реИ рдХрд┐ IsEmptyInterface рдЗрд╕рдХреЗ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд▓рд╛рдн рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдорд╣рдВрдЧрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣ рдмрд╣реБрдд рд╕рдВрднрд╡ рд╣реИ рдХрд┐ рдореИрдВ рд▓рд╛рднреЛрдВ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдордЭ рдирд╣реАрдВ рдкрд╛ рд░рд╣рд╛ рд╣реВрдВ, рдЗрд╕рд▓рд┐рдП рдЕрдзрд┐рдХ рд╕реБрдирдирд╛ рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛ред

рдХреНрдпрд╛ рд╣рдо рд╕рдЯреАрдХрддрд╛ рдФрд░ рдкреВрд░реНрдгрддрд╛ рдХреЗ рдмреАрдЪ рд╕рд╣реА рд╕рдВрддреБрд▓рди рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ? (рдиреЛрдЯ: "рдмрд╕ рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЛ рддреЗрдЬ рдмрдирд╛рдПрдВ" рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдПрдХ рд╡реНрдпрд╡рд╣рд╛рд░реНрдп рд░рдгрдиреАрддрд┐ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдЙрдирдХреЗ рд▓рд┐рдП рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЯрд╛рдЗрдкрд┐рдВрдЧ рдХреЛ рдПрдХ рдЕрдЪреНрдЫреА рдЬрдЧрд╣ рдкрд░ рд▓рд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред) рдзрдиреНрдпрд╡рд╛рдж!

performance typescript

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

рдореИрдВрдиреЗ рдЖрдЬ рдЕрдкрдиреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдордЯреЗрд░рд┐рдпрд▓ UI ( 4.9.4 ) рдЬреЛрдбрд╝рдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛ рд╣реИ, рдФрд░ рдордВрджреА рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрддрдиреА рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдореИрдВ рдЗрд╕реЗ рдЕрдкрдиреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рднреА рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред рдмрд╕ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдЬреЛрдбрд╝рд╛ <Slider/> , рдШрдЯрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрдиреБрдХреВрд▓рд┐рдд withStyles() ред

рд╣рдо рдЕрдкрдиреЗ рдЖрдИрдбреАрдИ рдореЗрдВ рддрддреНрдХрд╛рд▓ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдлреАрдбрдмреИрдХ рд╕реЗ рдЬрд╛рдиреЗ рдХреА рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдЬреЛ рдХрдИ рдмрд╛рд░ 5-10 рд╕реЗрдХрдВрдб рдХреА рддрд░рд╣ рдорд╣рд╕реВрд╕ рд╣реЛрддрд╛ рд╣реИ (рдореЗрд░реЗ рдХреЛрдб рдХреЗ рдХреБрдЫ рд╣рд┐рд╕реНрд╕реЛрдВ рдХреЗ рд▓рд┐рдП рдЬреЛ рдЕрдм рд╕рд╛рдордЧреНрд░реА рдпреВрдЖрдИ рдХреЗ рд╕рд╛рде рднреА рдмрд╛рддрдЪреАрдд рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВ - рдпрд╣ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдПрдХ рдкреВрд░реНрдг рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдордВрджреА рд╣реИ рдЬреЛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдШрдЯрдХ)ред рдЗрди рдкреНрд░рдХрд╛рд░реЛрдВ (рдпрд╛ рд╣рд╛рдБ, рдЕрддреНрдпрдзрд┐рдХ рдЬрдЯрд┐рд▓) рдХреЗ рд╕рд╛рде рдХреБрдЫ рдЧрд▓рдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ @amcasey рдХреБрдЫ рдЕрдЪреНрдЫреА рдЬрд╛рдВрдЪ рдХрд░ рд░рд╣рд╛ рд╣реИ - рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдЖрдк рдЗрд╕рдХреА рддрд╣ рддрдХ рдкрд╣реБрдВрдЪ рд╕рдХрддреЗ рд╣реИрдВ!

рдПрдХ рддрд░реАрдХрд╛ рдЦреЛрдЬрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдореИрдВ рдХрдо рд╕реЗ рдХрдо рд╕рднреА рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рд╛рдордЧреНрд░реА рдХреЛ @material-ui рд▓рд┐рдП рдЕрднреА рдХреЗ рд▓рд┐рдП рдмрд╛рд╣рд░ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ (рдореВрд▓ рд░реВрдк рд╕реЗ рд╕рдВрдкреВрд░реНрдг рдореЙрдбреНрдпреВрд▓ any ) - рд▓реЗрдХрд┐рди рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЗрддрдирд╛ рдЖрд╕рд╛рди рдирд╣реАрдВ рд▓рдЧрддрд╛ рд╣реИред

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

рдореИрдВ рд╕рд╛рдордЧреНрд░реА-рдпреВрдЖрдИ рдкреНрд░рдХрд╛рд░реЛрдВ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рдирд╣реАрдВ рд╣реВрдВ рд▓реЗрдХрд┐рди рдЗрди рд╕рд╡рд╛рд▓реЛрдВ рдХреЗ рдЬрд╡рд╛рдм рджреЗрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реВрдВред

  1. рд╣рд╛рдВ, рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╡реЗрдм рдорд╛рдирдХреЛрдВ рдореЗрдВ рдШреЛрд╖рд┐рдд рд╕рднреА рд╕реАрдПрд╕рдПрд╕ рд╕рдВрдкрддреНрддрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдкреВрд░реНрдг рд╕рдорд░реНрдерди рдЙрдкрдпреЛрдЧреА рд╣реИред
  2. рдП) рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рд╣рдо рдХрднреА рднреА 2 рд╕реЗ рдЕрдзрд┐рдХ рдЧрд╣рд░рд╛рдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЗрд╕ рддрд░рд╣ рдХреЗ рдорд╛рдорд▓реЗ рдХрд╛рдлреА рд╕рдВрднрд╡ рд╣реИрдВ
    `` `рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ
    рдХрд╛рд╕реНрдЯ рд╕реНрдЯрд╛рдЗрд▓ = (рдереАрдо: рдереАрдо) =>
    рдХреНрд░рд┐рдПрдЯ рд╕реНрдЯрд╛рдЗрд▓реНрд╕({
    рдХреБрдЫрджрд┐рд╡: {
    'рдФрд░: рд╣реЛрд╡рд░ рдмрдЯрди': {
    рджреГрд╢реНрдпрддрд╛: 'рджреГрд╢реНрдпрдорд╛рди',
    рдЕрд╕реНрдкрд╖реНрдЯрддрд╛: 1,
                ':after': {
                    content: 'x',

                    [theme.breakpoints.up('lg')]: {
                        content: 'close',
                    },
                }
            },
        }
    });
```
b) I do not understand why `BaseCSSProperties[keyof BaseCSSProperties]` is needed there

  1. рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ (props: Props) => CreateCSSProperties<Props> рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рд╣рдордиреЗ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреЛ рд╕рд╛рдордЧреНрд░реА-рдпреВрдЖрдИ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рдЕрдкрдиреЗ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ, рдФрд░ рдХреБрдЫ рднреА рдмреБрд░рд╛ рдирд╣реАрдВ рд╣реБрдЖ рд╣реИред

рдпрд╣ рд╕рдВрд╕реНрдХрд░рдг 3.9.3 рдореЗрдВ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рджреЗрдЦрдиреЗ рд▓рд╛рдпрдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ, рдЯрд╛рдЗрдк рдЪреЗрдХрд┐рдВрдЧ рдХрд╛рдлреА рддреЗрдЬ рдереА рдФрд░ рдЯрд╛рдЗрдкрд┐рдВрдЧ рдЕрдЪреНрдЫреА рдереАред

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдореИрдВ рдЖрдкрдХреЛ рдЗрд╕ рдкрд░ рдкрд╣реБрдВрдЪрдиреЗ рдФрд░ рдЗрд╕ рдкрд░ рдЧреМрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж рджреЗрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдХрд┐рд╕реА рдХреЗ рд▓рд┐рдП рдмреЗрдВрдЪрдорд╛рд░реНрдХ рд╣реЛрдирд╛ рдЕрд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд░реВрдк рд╕реЗ рдорджрджрдЧрд╛рд░ рд╣реИ рдХрд┐ рдХрд┐рд╕ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдзреАрдореЗ рд╣реИрдВ рдпрд╛ рдирд╣реАрдВред

  1. рдХреНрдпрд╛ рдореИрдВ рдпрд╣ рдорд╛рдирдиреЗ рдореЗрдВ рд╕рд╣реА рд╣реВрдВ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рд╕рд┐рджреНрдз рд╕реАрдПрд╕рдПрд╕ рд╕рдВрдкрддреНрддрд┐ рдХреЗ рд▓рд┐рдП рдирд╛рдо рдФрд░ рдкреНрд░рдХрд╛рд░ рд╣реЛрдирд╛ рдЕрд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд░реВрдк рд╕реЗ рдореВрд▓реНрдпрд╡рд╛рди рд╣реИ рдФрд░ рдРрд╕рд╛ рдХреБрдЫ рдирд╣реАрдВ рд╣реИ рдЬрд┐рд╕реЗ рд╣рдо рдЫреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ?

рдпрд╣рд╛рдВ рдирд┐рд╖реНрдкрдХреНрд╖ рд╣реЛрдирд╛ рдЕрд╕рдВрднрд╡ рд╣реИред рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рд╡реНрдпрд╛рдкрдХ рдкрд╛рд░рд┐рд╕реНрдерд┐рддрд┐рдХреА рддрдВрддреНрд░ рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП рд╣рдо рдЗрд╕реЗ рдЫреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред рдХреНрд░реЛрдо devtools рдореЗрдВ рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ рд╣реИ, рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╕реНрд╡рдпрдВ style рдкреНрд░реЛрдк CSSProperties рдЖрджрд┐ рдХреЗ рд╕рд╛рде рдЯрд╛рдЗрдк рдХрд░рддреА рд╣реИред рдореИрдВ рдЦреБрдж рдХреЛ рдЖрдИрдбреАрдИ рд╕реЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рд╕реНрд╡рд┐рдЪ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рдФрд░ рдЬрд╛рдВрдЪ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рдЯреЗрдХреНрд╕реНрдЯ-рдбреЗрдХреЛрд░реЗрд╢рди рдпрд╛ рдлреЙрдиреНрдЯ-рдбреЗрдХреЛрд░реЗрд╢рди рдерд╛ рдпрд╛ рдкрд╛рда-рд░реВрдкрд╛рдВрддрд░рдгред

  1. [...]
    рдХреНрдпрд╛ рдпреЗ рдмреИрдЧ рд╕реНрд╡рдпрдВ рдкреБрдирд░рд╛рд╡рд░реНрддреА рд╣реИрдВ рдпрд╛ рдХреЗрд╡рд▓ рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдкрд░рдд рд╣реИ?

рдореБрдЭреЗ рдЙрд╕ рд╕реАрдПрд╕рдПрд╕-рдЗрди-рдЬреЗрдПрд╕ рд╕рдорд╛рдзрд╛рди рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреА рд╣реЛрдЧреА рдЬрд┐рд╕рдХрд╛ рд╣рдо рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВред CSS рдореЗрдВ рддрдХрдиреАрдХреА рд░реВрдк рд╕реЗ рдореАрдбрд┐рдпрд╛ рдХреЗ рдкреНрд░рд╢реНрди рдкреБрдирд░рд╛рд╡рд░реНрддреА рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рдореИрдВ рдЗрд╕ рдкреБрдирд░рд╛рд╡рд░реНрддреАрддрд╛ рдореЗрдВ рдХрдЯреМрддреА рдХрд░рдиреЗ рдФрд░ рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реВрдВ рдХрд┐ рд╣рдореЗрдВ рд░рд┐рдкреЛрд░реНрдЯ рдорд┐рд▓рддреА рд╣реИ рдпрд╛ рдирд╣реАрдВред рддрдХрдиреАрдХреА рд░реВрдк рд╕реЗ рдиреЗрд╕реНрдЯреЗрдб рдореАрдбрд┐рдпрд╛ рдкреНрд░рд╢реНрдиреЛрдВ рдХреЛ and рдСрдкрд░реЗрдЯрд░ рдХреЗ рд╕рд╛рде рд╕рдорддрд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╣рдореЗрдВ рдЗрд╕реЗ рджреЛ рд╕реНрддрд░реЛрдВ рддрдХ рд╕реАрдорд┐рдд рд░рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП: рдПрдХ рдореАрдбрд┐рдпрд╛ рдХреЗ рдкреНрд░рд╢реНрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдФрд░ рджреВрд╕рд░рд╛ рдЫрджреНрдо рдЪрдпрдирдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдПред рдпрд╣ рдЕрднреА рднреА рдЖрдИрдПрдордУ рдЯрд╛рдЗрдк рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП:

const styles = {
  root: {
    '<strong i="18">@media</strong> (max-width: 12cm)': {
      ':hover': {}
    }    
  }
}

рдХреНрдпрд╛ рдпрд╣ рдХреБрдЫ рдРрд╕рд╛ рд╣реИ рдЬрд┐рд╕реЗ рдЖрдк рд╕реНрд╡рдпрдВ @oliviertassinari рд▓рд┐рдЦрддреЗ рд╣реБрдП рджреЗрдЦрддреЗ рд╣реИрдВ?

  1. [...]
    CSSProperties - рдпрд╛ (props: Props) => CreateCSSProperties, рдЬреЛ рдореБрдЭреЗ рд╕рдордЭ рдореЗрдВ рдирд╣реАрдВ рдЖрдпрд╛ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдкреНрд░рднрд╛рд╡реА рд░реВрдк рд╕реЗ рдбрдмрд▓-рдЖрд▓рд╕реА рд╣реИ - рдЖрдкрдиреЗ рдПрдХ рдмрд╛рд░ CreateCSSProperties рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдФрд░ рдлрд┐рд░ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдЧреБрдг рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЙрдкреНрд╕ рдореЗрдВ рдкрд╛рд╕ рдХрд┐рдпрд╛ рд╣реИред рдпрд╣ "рдбрдмрд▓ рдердВрдХреЗрдб" рдХреНрдпреЛрдВ рд╣реИ?

рдпрджрд┐ рддрд░реНрдХ рд╕реНрд╡рдпрдВ рдПрдХ рд╕рдВрдкрддреНрддрд┐ рдмреИрдЧ рдирд╣реАрдВ рд╣реИ рдмрд▓реНрдХрд┐ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рд╣реИ рддреЛ рдЙрд╕реЗ рдереАрдо рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рд╢реИрд▓рд┐рдпрд╛рдБ рджреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкреНрд░рдХрд╛рд░ рдХреЗ рдкреНрд░реЙрдкрд░реНрдЯреА рдмреИрдЧ рдкрд░ рдирд┐рд░реНрднрд░ рд╣реЛ рд╕рдХрддреА рд╣реИрдВ: рдереАрдо (рд░рд┐рдПрдХреНрдЯ рдХреЗ рд╕рдВрджрд░реНрдн рдПрдкреАрдЖрдИ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЙрдкрд▓рдмреНрдз) рдпрд╛ рдкреНрд░реЙрдкреНрд╕ (рд╕реАрдзреЗ рдШрдЯрдХ рдХреЛ рдкрд╛рд╕ рдХрд┐рдпрд╛ рдЧрдпрд╛):

makeStyles({ root: { color: 'blue' }}); // A
makeStyles(theme => ({ root: { color: theme.color } })); // B
makeStyles({ root: props => ({ color: props.color})}); // C
makeStyles({ root: { color: props => props.color } }); // D: same as C, only exists for dev ergonomics
makeStyles(theme => ({ root: props => ({ color: props.color || theme.color }) })); // E: what you called "double-lazy"

рдпрд╣ рдкреВрд░реНрдг рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд▓рд╕реА рдореВрд▓реНрдпрд╛рдВрдХрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХрдо рд╣реИ рд▓реЗрдХрд┐рди рд╕рдВрджрд░реНрдн рдФрд░ рдкреНрд░реЛрдк рдЙрдкрд▓рдмреНрдз рд╣реЛрдиреЗ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рд╣реИред

рдЕрд▓рдЧ рд╕реЗ, рдореБрдЭреЗ рд╕рдВрджреЗрд╣ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрднреА рддрдХ рдпрд╣ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдирд╛ рдмрд╛рдХреА рд╣реИ рдХрд┐ IsEmptyInterface рдЗрд╕рдХреЗ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд▓рд╛рдн рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдорд╣рдВрдЧрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣ рдмрд╣реБрдд рд╕рдВрднрд╡ рд╣реИ рдХрд┐ рдореИрдВ рд▓рд╛рднреЛрдВ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдордЭ рдирд╣реАрдВ рдкрд╛ рд░рд╣рд╛ рд╣реВрдВ, рдЗрд╕рд▓рд┐рдП рдЕрдзрд┐рдХ рд╕реБрдирдирд╛ рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛ред

рдПрдХ рдорд╛рдорд▓рд╛ рд╣реИ рдЬрд╣рд╛рдВ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:

рд╡рд┐рдЪрд╛рд░ рдХрд░рдирд╛

const useStaticStyles = makeStyles({ root: { color: 'blue' } });
const useDynamicStyles= makeStyles({ root: { color: props =>  props.color } })
function Component() {
  const staticClasses = useStaticStyles(); // No error
  const throwingClasses = useDynamicStyles(); // $ExpectError
  const dynamicClasses = useDynamicStyles({ color: 'blue' });
}

makeStyles рд╕реЗ рд▓реМрдЯрд╛рдП рдЧрдП рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдХреЙрд▓ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХрд╛ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП (рдпрд╛рдиреА рд╣реБрдХ рдХрд╛ рдирд╛рдо рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рд╣реИ useSomeStyles )ред рд╣рдореЗрдВ рдпрд╣ рдЬрд╛рдВрдЪрдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдХрд┐рд╕ рдкреНрд░рдХрд╛рд░ рдХрд╛ рд╕реНрдЯрд╛рдЗрд▓ рдмреИрдЧ makeStyles ред рд╕реНрдЯрд╛рдЗрд▓ рдмреИрдЧ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдкреНрд░реЛрдк рдХреЗ рдкреНрд░рдХрд╛рд░реЛрдВ рдХрд╛ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ {} рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рддрд╛ рд╣реИред рдлрд┐рд░ рд╣рдо IsEmptyInterface рд╕рд╛рде рдкреНрд░реЛрдк рдХреЗ рдЕрдиреБрдорд╛рдирд┐рдд рдкреНрд░рдХрд╛рд░ рдХреА рдЬрд╛рдВрдЪ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдПрдХ рд╢рд╛рдЦрд╛ рдХреЗ рд▓рд┐рдП рд╣рдо 0 рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд╕рд╛рде рдХреЙрд▓ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рджреВрд╕рд░реА рд╢рд╛рдЦрд╛ рдХреЗ рд▓рд┐рдП рд╣рдо 1 рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд╕рд╛рде рдХреЙрд▓ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдЕрдиреБрдорд╛рдирд┐рдд рдкреНрд░реЛрдк рдкреНрд░рдХрд╛рд░ рдХреЗ рдмрд░рд╛рдмрд░ рд╣реЛрддрд╛ рд╣реИ ( StylesRequireProps рдФрд░ StylesHook ред

рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ: рд╣рдо useStaticStyles({}) рдпрд╛ useStaticStyles(null as any) рд▓рд┐рдЦрдиреЗ рд╕реЗ рдмрдЪрддреЗ рд╣реИрдВред рдЗрд╕реЗ https://github.com/mui-org/material-ui/pull/14019 рдореЗрдВ ред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдХреЙрд▓ рд╕рд┐рдЧреНрдиреЗрдЪрд░ рдХрд╛ рдирд┐рд░реНрдзрд╛рд░рдг рд╢реЙрд░реНрдЯ рд╕рд░реНрдХрд┐рдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╢рд╛рдпрдж рд╕рд╢рд░реНрдд рдкреНрд░рдХрд╛рд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдХреЙрд▓ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХреЛ рдЕрдзрд┐рднрд╛рд░рд┐рдд рдХрд░реЗрдВ?

рдЗрд╕ "рд╕реБрд╡рд┐рдзрд╛" рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЙрдиреНрдирдд рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ null as any рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИ рдпрджрд┐ рд╡реЗ рд╕рдордЭрддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпреЛрдВред рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЬрд░реВрд░рдд рди рд╣реЛрдиреЗ рдкрд░ рднреА рдХрд┐рд╕реА рдЦрд╛рд▓реА рд╡рд╕реНрддреБ рдХреЛ рдкрд╛рд╕ рдХрд░рдирд╛ рдареАрдХ рд╣реЛред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЬрдм рд╕рд╛рдордЧреНрд░реА-рдпреВрдЖрдИ рдпрд╛ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рдпрд╣ рдмрд╣реБрдд рднреНрд░рдорд┐рдд/рдирд┐рд░рд╛рд╢рд╛рдЬрдирдХ рд╣реЛрддрд╛ рд╣реИред рдЦрд╛рд╕рдХрд░ рдЬрдм рд╕реЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рд╕реНрдЯрд╛рдЗрд▓ рд╡реИрд╕реЗ рднреА рдкреНрд░реЙрдкреНрд╕ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рдирд╣реАрдВ рд╣реИред

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕реНрдЯрд╛рдЗрд▓рд┐рдВрдЧ рд╕рдорд╛рдзрд╛рди рдХреЗ рд╕рд╛рде рдЕрдзрд┐рдХрд╛рдВрд╢ рд╕рдордп рдЯрд╛рдЗрдк рдЪреЗрдХрд░ рдХрд╛ рдХрдмреНрдЬрд╛ рд╣реИ? рдореБрдЭреЗ рд╣рдорд╛рд░реЗ рдШрдЯрдХреЛрдВ рдХреЗ рд▓рд┐рдП рдХреЙрд▓ рд╕рд┐рдЧреНрдиреЗрдЪрд░ рдХреА рдЙрдореНрдореАрдж рдереА, рдпрд╛рдиреА рдЕрдзрд┐рдХрд╛рдВрд╢ рд╕рдордп рд▓реЗрдиреЗ рдХреЗ рд▓рд┐рдП рдХреМрди рд╕реЗ рдкреНрд░реЙрдкреНрд╕ рд╕рдВрднрд╡ рд╣реИрдВред

рдореИрдВ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ withStyles рдпрд╛ makeStyles рдЙрдкрдпреЛрдЧ рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдФрд░ рдЕрдзрд┐рдХ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреНрд░реЙрд▓ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред рдЕрдм рддрдХ рдореИрдВрдиреЗ рдХреЗрд╡рд▓ рдкреНрд░реЙрдкреНрд╕ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЛ рджреЗрдЦрд╛ рд╣реИред

рдХреНрдпрд╛ рдпрд╣ рдХреБрдЫ рдРрд╕рд╛ рд╣реИ рдЬрд┐рд╕реЗ рдЖрдк рд╕реНрд╡рдпрдВ @oliviertassinari рд▓рд┐рдЦрддреЗ рд╣реБрдП рджреЗрдЦрддреЗ рд╣реИрдВ?

@ eps1lon рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХреЛрдбрдмреЗрд╕ рдореЗрдВ рдЗрд╕ рдиреЗрд╕реНрдЯрд┐рдВрдЧ рдХреА рдХреБрдЫ рдШрдЯрдирд╛рдПрдВ рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП <strong i="8">@media</strong> (hover: none) )ред рд▓реЗрдХрд┐рди рдпрд╣ рдореБрдЦреНрдп рдШрдЯрдХреЛрдВ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдмрд╛рд░ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╡рд╣реА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рднреВрдорд┐ рд╣реИред рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЯреНрд░реЗрдбрдСрдл рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

@beholderrk

  1. рдореИрдВрдиреЗ рдЙрддрдирд╛ рд╣реА рд╕реЛрдЪрд╛, рд▓реЗрдХрд┐рди рд╕реЛрдЪрд╛ рдХрд┐ рдореИрдВ рднреА рдкреВрдЫ рд╕рдХрддрд╛ рд╣реВрдВред
  2. рдП) рдЧрд╣рд░рд╛рдИ рджреЛ рдХреЛ рд╡реНрдпрдХреНрдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП - рдЧрд╣рд░рд╛рдИ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╕ рдереЛрдбрд╝рд╛ рдЕрдзрд┐рдХ рджреЛрд╣рд░рд╛рд╡ рд╣реЛрдЧрд╛ред
    рдмреА) рдореБрдЭреЗ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдкрдирд╛ рд╕рд┐рд░ рдкрд╛рдиреЗ рдореЗрдВ рдХрд╛рдлреА рд╕рдордп рд▓рдЧрд╛ рдФрд░ рдХрд╛рд╢ рдореИрдВ рдЗрд╕реЗ рдкрд╛рда рдХреЗ рдмрдЬрд╛рдп рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рд╕рдордЭрд╛ рдкрд╛рддрд╛ред рдореВрд▓ рд░реВрдк рд╕реЗ, рд╕реВрдЪрдХрд╛рдВрдХ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХрд╣ рд░рд╣рд╛ рд╣реИ рдХрд┐ рд╕рднреА рдЧреБрдгреЛрдВ рдХрд╛ рдПрдХ рд╣реА рдкреНрд░рдХрд╛рд░ рд╣реИред рдпрд╣ рдХреЗрд╡рд▓ рддрднреА рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдЬрдм рдпрд╣ рдЙрди рд╕рднреА рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдкреНрд░рдХрд╛рд░ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рд╕рднреА рдкреНрд░рдХрд╛рд░ рдХреА рд╕рдВрдкрддреНрддрд┐ рдХреЗ рд╕рдВрдШ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рдирд╛ рд╣реИ, BaseCSSProperties[keyof BaseCSSProperties] - рддреЛ рдпрд╣ рд╕рдЪ рд╣реЛрдЧрд╛ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рд╕рдВрдкрддреНрддрд┐ рдХрд╛ рдПрдХ рд╕рдВрдЧрдд рдкреНрд░рдХрд╛рд░ рд╣реЛрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдорд╛рди рд▓реЗрдВ рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ CSS рдореЗрдВ рдХреЗрд╡рд▓ name: string рдФрд░ width: number рд╣реА рдЧреБрдг рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рджреЛрдиреЛрдВ рдЧреБрдгреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдЗрдВрдбреЗрдХреНрд╕ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рдпрд╣ рдХрд╣рдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рд╕рдВрдкрддреНрддрд┐ string | number ред рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реИ - name рдХрднреА рднреА number рдФрд░ width рдХрднреА рднреА string - рд▓реЗрдХрд┐рди рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЖрдк рдЬреЛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рд╡рд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╡реНрдпрдХреНрдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдХрдо рд╕реЗ рдХрдо, рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрд╣рдо рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИрдВ - рдПрдХ "рдЪрддреБрд░" рд╣реИрдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рдЗрд╕реЗ рдХрд░рддрд╛ рд╣реИ)ред рдЖрдк рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрд╣ рдХрд╣рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рдЖрдкрдХреЗ рдкреНрд░рдХрд╛рд░ рдореЗрдВ name: string , width: number рдпрд╛ x: CSSProperties , рдЬрд╣рд╛рдВ x рдХреБрдЫ рднреА рд╣реИ рд▓реЗрдХрд┐рди name рдпрд╛ width - рдпрд╣ "рдХреБрдЫ рднреА рд▓реЗрдХрд┐рди" рдЧрд╛рдпрдм рд╣реИред рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдпрд╣ рдереЛрдбрд╝рд╛ рд╕реНрдкрд╖реНрдЯ рд╣реИред
  3. рдРрд╕рд╛ рд▓рдЧ рд░рд╣рд╛ рдерд╛ рдХрд┐ @ eps1lon рдХреЛ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рдХрд╣рдирд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдЕрднреА рднреА рдЙрдирдХреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред

рдПрдХ рдЬреНрдЮрд╛рдд-рдЕрдЪреНрдЫреА рдЖрдзрд╛рд░ рд░реЗрдЦрд╛ рдмрд╣реБрдд рдорджрджрдЧрд╛рд░ рд╣реЛрдЧреАред рдХреНрдпрд╛ рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рд▓рд┐рдВрдХ рд╣реЛрддрд╛ рд╣реИ?
рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рдЗрд╕реЗ рдорд┐рд▓рд╛ред

@eps1lon рдмрд╛рддрдЪреАрдд рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реВрдВ ред рддреЗрдЬрд╝, рд╕рд╣реА рдкреНрд░рдХрд╛рд░ рд╕рднреА рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫреЗ рд╣реЛрддреЗ рд╣реИрдВред рдореИрдВ

  1. рдпрд╣рд╛рдВ рдХреЛрдИ рддрд░реНрдХ рдирд╣реАрдВ рд╣реИ - рдореБрдЭреЗ рд▓рдЧрд╛ рдХрд┐ рдореИрдВ рдЬрд▓реНрджреА рдкреВрдЫреВрдВрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рд╕реЗ рдкреВрд░реА рдмрд╛рддрдЪреАрдд рд╢реЙрд░реНрдЯ-рд╕рд░реНрдХрд┐рдЯ рд╣реЛ рдЬрд╛рддреАред
  2. рджреЛ рдкрд░рддреЗрдВ рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рд▓рдЧрддреА рд╣реИрдВ (рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рдЪреЗрддрд╛рд╡рдиреА рдХреЗ рд╕рд╛рде рдХрд┐ рдкреНрд░рдХрд╛рд░ рдЕрднреА рднреА рдХрд╛рдлреА рд╣рдж рддрдХ рдмреЗрдХрд╛рд░ рд╣реЛрдВрдЧреЗ)ред рдореИрдВ рджреЗрдЦреВрдВрдЧрд╛ рдХрд┐ рдХреНрдпрд╛ рдореИрдВ рдХреБрдЫ рдорд╕реМрджрд╛ рддреИрдпрд╛рд░ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред
  3. рдореЗрд░реЗ рд╕рдВрджрд░реНрдн рдХреА рдХрдореА рдХреЗ рдХрд╛рд░рдг, рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рдерд╛ рдХрд┐ рдереАрдо рдФрд░ рдкреНрд░реЙрдкреНрд╕ рдЕрд▓рдЧ рдереЗред рдпрджрд┐ рд╡реЗ рд╣реИрдВ, рддреЛ рд╕рдВрд░рдЪрдирд╛ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред

isEmptyInterface , рдХреНрдпрд╛ рдЖрдк рдХреЗрд╡рд▓ рдЧреБрдг рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ (рдЙрджрд╛рд╣рд░рдг) useStaticStyles рд╡реИрдХрд▓реНрдкрд┐рдХ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ? рдпрд╣ рдХрдо рд╕рд╣реА рд╣реЛрдЧрд╛, рдЗрд╕ рдЕрд░реНрде рдореЗрдВ рдХрд┐ рдХреЙрд▓ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдЙрдиреНрд╣реЗрдВ рдЕрдкреЗрдХреНрд╖рд┐рдд рд╣реЛрдиреЗ рдкрд░ рдЫреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЪреЗрдХ рдЯрд╛рдЗрдк рдХрд░рдирд╛ рдмрд╣реБрдд рд╕рд╕реНрддрд╛ рд╣реЛрдЧрд╛ред рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдХрд╣рд╛, рдореЗрд░реЗ рдкрд╛рд╕ рдЖрдкрдХреЗ рд▓рд┐рдП рдирдВрдмрд░ рдпрд╛ рдХреБрдЫ рднреА рдирд╣реАрдВ рд╣реИ - рдпрд╣ рдореЗрд░реА рдУрд░ рд╕реЗ рд╕рд┐рд░реНрдл рдЕрдЯрдХрд▓реЗрдВ рд╣реИрдВред

2(рдмреА) рдкрд░ рдЖрдкрдХреЗ рдХреНрдпрд╛ рд╡рд┐рдЪрд╛рд░ рд╣реИрдВ? рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╡рд╣ рдкреНрд░рдХрд╛рд░ рдЕрдзрд┐рдХ рдореВрд▓реНрдп рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдореВрд▓ рд░реВрдк рд╕реЗ рдХрд╣рддрд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕реА рднреА рд╕рдВрдкрддреНрддрд┐ рдХрд╛ рдирд╛рдо рд╕реНрд╡реАрдХрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рд╡рд╛рдкрд╕реА рдкреНрд░рдХрд╛рд░ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдЪреАрдЬреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

isEmptyInterface рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ, рдХреНрдпрд╛ рдЖрдк рдХреЗрд╡рд▓ рдЧреБрдг рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП) useStaticStyles рд╡реИрдХрд▓реНрдкрд┐рдХ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ?

рдореИрдВ рдкрд╣рд▓реЗ рдХреЙрд▓ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХреЛ рдУрд╡рд░рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд╕рд╛рде рдкреНрд░рдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдФрд░ рджреЗрдЦрддрд╛ рд╣реВрдВ рдХрд┐ рдЗрд╕рдХрд╛ рдХреЛрдИ рдкреНрд░рднрд╛рд╡ рдкрдбрд╝рддрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред рдлрд┐рд░ рд╣рдо рдЗрд╕реЗ рд╣рдореЗрд╢рд╛ рд╡реИрдХрд▓реНрдкрд┐рдХ рдмрдирд╛рдХрд░ рдЗрд╕реЗ рдХрдо рдзреНрд╡рдирд┐ рдмрдирд╛рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВрдЧреЗред рдЗрд╕реЗ рдХрдо рдзреНрд╡рдирд┐ рдмрдирд╛рдирд╛ рд╕рд╛рдорд╛рдиреНрдп рд╕реЗ рдЕрдзрд┐рдХ рд╕реБрд░рдХреНрд╖рд┐рдд рд▓рдЧрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд▓рдЧрднрдЧ рд╕рднреА рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдЗрд╕реЗ рдХреЗрд╡рд▓ рдПрдХ рдмрд╛рд░ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдк рдХреЗрд╡рд▓ рдПрдХ рдмрд╛рд░ рдЧрд▓рддреА рдХрд░рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд░рдЦрддреЗ рд╣реИрдВ рдФрд░ рдпрд╣ рдмрд╣реБрдд рдЬрд▓реНрджреА рд╕рд╛рдордиреЗ рдЖрддрд╛ рд╣реИред рдЗрд╕реЗ рдмреЗрдЪрдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реЛрдЧрд╛, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЕрдЧрд░ рдЗрд╕рд╕реЗ рд╣рдореЗрдВ рдЬреНрдпрд╛рджрд╛ рдкреНрд░рджрд░реНрд╢рди рдирд╣реАрдВ рдорд┐рд▓рддрд╛ рд╣реИред рдореИрдВ рдореВрд▓ рдореБрджреНрджреЗ (https://github.com/microsoft/TypeScript/issues/34801#issue-514055289) рдХреЗ рд▓рд┐рдП рдмрдирд╛рдП рдЧрдП рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реВрдВрдЧрд╛ред

2(рдмреА) рдкрд░ рдЖрдкрдХреЗ рдХреНрдпрд╛ рд╡рд┐рдЪрд╛рд░ рд╣реИрдВ? рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╡рд╣ рдкреНрд░рдХрд╛рд░ рдЕрдзрд┐рдХ рдореВрд▓реНрдп рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдореВрд▓ рд░реВрдк рд╕реЗ рдХрд╣рддрд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕реА рднреА рд╕рдВрдкрддреНрддрд┐ рдХрд╛ рдирд╛рдо рд╕реНрд╡реАрдХрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рд╡рд╛рдкрд╕реА рдкреНрд░рдХрд╛рд░ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдЪреАрдЬреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рдЗрд╕реЗ рдЧрд▓рддреА рд╕реЗ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ред рдореИрдВ рдЗрд╕реЗ IsEmptyInterface рдкреНрд░рдпреЛрдЧ рдХреЗ рдмрд╛рдж рджреЗрдЦреВрдВрдЧрд╛ред

@ eps1lon рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рд╣рдордд рд╣реИрдВ - isEmptyInterface рдпрджрд┐ рдЗрд╕реЗ рд╕рдорд╛рдкреНрдд рдХрд░рдирд╛ рдкрд░реНрдпрд╛рдкреНрдд рдкреВрд░реНрдг рдЬреАрдд рдирд╣реАрдВ рд╣реИред

#19320 рдХреЗ рд╕рд╛рде рд╣рдордиреЗ рдХреБрдЫ рдЬрдЯрд┐рд▓ рд╕рд╢рд░реНрдд рдкреНрд░рдХрд╛рд░реЛрдВ рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛рдпрд╛ рдЬрд╣рд╛рдВ рдлрд╝рдВрдХреНрд╢рди рдЕрдзрд┐рднрд╛рд░ рдиреЗ рдПрдХ рд╣реА рдЪреАрдЬрд╝ рдкреНрд░рд╛рдкреНрдд рдХреА ( IsEmptyInterface рдФрд░ рдХрд┐рд╕реА рднреА рдмреВрд▓рд┐рдпрди рддрд░реНрдХ рдкреНрд░рдХрд╛рд░ рдХреЛ рд╣рдЯрд╛рдХрд░)ред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХрдо рдХреЛрдб рд╣реЛрдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рд╣рдореЗрдВ рдЬреНрдпрд╛рджрд╛ рдлрд╛рдпрджрд╛ рдирд╣реАрдВ рд╣реБрдЖред

рдореИрдВ рдпрд╣ рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдореИрдВ рд╡рд░реНрддрдорд╛рди рдореЗрдВ TS 3.2.4 рдФрд░ 3.7.4 рдХреЗ рдмреАрдЪ рдЖрдЧреЗ рдФрд░ рдкреАрдЫреЗ рд╕реНрд╡рд┐рдЪ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рд╣рдорд╛рд░рд╛ рдЯрд╛рдЗрдк рдЯреЗрд╕реНрдЯ рд╕реВрдЯ 3.2.4 (~ 90s рдмрдирд╛рдо 50s) рдХреА рддреБрд▓рдирд╛ рдореЗрдВ 3.7.4 рдореЗрдВ 50% рдзреАрдореА рдЧрддрд┐ рд╕реЗ рдЪрд▓рддрд╛ рд╣реИред

рдореИрдВ рдЬрд╛рдВрдЪ рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦреВрдВрдЧрд╛ рдХрд┐ рдХреНрдпрд╛ рд╣рдо CSSProperties рдХреА рдЧрд╣рд░рд╛рдИ рдХреЛ рд╕реАрдорд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдореАрдбрд┐рдпрд╛ рдкреНрд░рд╢реНрдиреЛрдВ рдФрд░ рдЫрджреНрдо рдЪрдпрдирдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдорд░реНрдерди рд╣рдЯрд╛ рд╕рдХрддреЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЯрд╛рдЗрдк рди рдХрд░рдирд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рд╡рд┐рдХрд▓реНрдк рдирд╣реАрдВ рд╣реИред рдЯрд╛рдЗрдк рдЪреЗрдХрд░ рдЙрдЪрд┐рдд рд╕рдордп рдореЗрдВ рдЙрдирдХреЛ рдЬрд╛рдВрдЪрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдпрд╣ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЯрд╛рдЗрдк рдЪреЗрдХрд░ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЕрдбрд╝рдЪрди рд╣реЛред рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдЬрд╛рдВрдЪ рдХрд░ рд╕рдХреЗрдВ рдХрд┐ рдХрд┐рд╕ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдкрд░реНрдлрд╝ рд╣рд┐рдЯ рд╣реБрдЖред

рдпрджрд┐ рдЖрдк 3.2.4 рдФрд░ 3.7.4 рдореЗрдВ рдЪрд▓ рд░рд╣реЗ рдХрдорд╛рдВрдб рдореБрдЭреЗ рднреЗрдЬрддреЗ рд╣реИрдВ, рддреЛ рдореИрдВ рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рдкреНрд░реЛрдлрд╛рдЗрд▓ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЕрдиреБрднрд╡ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рдЗрд╕рдХрд╛ рдХрд╛рд░рдг рд╕рдВрднрд╡рддрдГ 3.2.4 рдХреЗ рдмрд╛рдж рд╕реЗ рдЕрддрд┐рд░рд┐рдХреНрдд, рд╡рд╛рдВрдЫрдиреАрдп рдЬрд╛рдБрдЪ рдХреЛ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдПрдЧрд╛ред (рдФрд░ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ "0s" рдПрдХ рдЯрд╛рдЗрдкреЛ рд╣реИ - рд╢рд╛рдпрдж "40s" рдпрд╛ "50s"?)

CSSProperties рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ, рдореИрдВ рдорд╛рдирддрд╛ рд╣реВрдБ рдХрд┐ рд╕рдВрдкрддреНрддрд┐ рдХреЗ рдирд╛рдо рдФрд░ рдкреНрд░рдХрд╛рд░ рд░рдЦрдирд╛ рдЕрддреНрдпрдВрдд рдореВрд▓реНрдпрд╡рд╛рди рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЙрдЪрд┐рдд рд╕рдордп рдореЗрдВ рдЙрдиреНрд╣реЗрдВ рдЬрд╛рдБрдЪрдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдФрд░ рднреА рдмрд╣реБрдд рдХреБрдЫ рд╣реИ - рдкрд╣рд▓реА рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЯрд╛рдЗрдк рд╕рд┐рд╕реНрдЯрдо рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрдкрдХреЗ рдЗрдЪреНрдЫрд┐рдд рдЖрдХрд╛рд░ рдХреЛ рд╡реНрдпрдХреНрдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рд╢рд╛рдпрдж рд╕рдорд╕реНрдпрд╛ рдХреЗ рд╕рд╛рдорд╛рдиреНрдп рд╕рдорд╛рдзрд╛рди рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рдореЗрдВ рдХреБрдЫ рд╕рдордп рд╡реНрдпрддреАрдд рдХрд░рдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ - рдХреНрдпрд╛ рдореИрдВ рдорд╛рди рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдЖрдк рдЙрд╕ рдЪрд░реНрдЪрд╛ рдореЗрдВ рднрд╛рдЧ рд▓реЗрдиреЗ рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ?

рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЗ рдХрдИ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреА рддреБрд▓рдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП, рдпрджрд┐ рдЖрдк рдПрдХ рдХрд╛рдлреА рд╕реНрдерд┐рд░ рдкрд░реАрдХреНрд╖рдг рдХреА рдкрд╣рдЪрд╛рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рд╕реЗ рдЖрдк рд╣рдореЗрдВ рдЪрд▓рд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рд╕рдордп рдХреЗ рд╕рд╛рде рдордВрджреА рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВред

(рдФрд░ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ "0s" рдПрдХ рдЯрд╛рдЗрдкреЛ рд╣реИ - рд╢рд╛рдпрдж "40s" рдпрд╛ "50s"?)

рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рдпрд╣ 50 рдХрд╛ рджрд╢рдХ рд╣реИред

рдпрджрд┐ рдЖрдк 3.2.4 рдФрд░ 3.7.4 рдореЗрдВ рдЪрд▓ рд░рд╣реЗ рдХрдорд╛рдВрдб рдореБрдЭреЗ рднреЗрдЬрддреЗ рд╣реИрдВ, рддреЛ рдореИрдВ рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рдкреНрд░реЛрдлрд╛рдЗрд▓ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред

рдпрд╣ рд░реВрдЯ рдореЗрдВ рд╕рд┐рд░реНрдл yarn typescript рд╣реИ рдЬреЛ рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдкреНрд░рддреНрдпреЗрдХ рдХрд╛рд░реНрдпрдХреНрд╖реЗрддреНрд░ рдореЗрдВ рд╕рдорд╛рди рдХрдорд╛рдВрдб рдЪрд▓рд╛рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП yarn workspace @material-ui/styles run typescript tslint рдФрд░ dtslint рдХреЗ $ExpectError рд╕рд╛рде рд╣рдорд╛рд░реЗ рдкреНрд░рдХрд╛рд░реЛрдВ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рддрд╛ рд╣реИред 3.7.4 рдореЗрдВ рд╣рдореЗрдВ рдХреБрдЫ рд╡рд┐рдлрд▓рддрд╛рдУрдВ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛ рдФрд░ рд╣рдореЗрдВ рдЕрдкрдиреЗ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд░рдирд╛ рдкрдбрд╝рд╛ (рджреЗрдЦреЗрдВ #19242)

рдкрд╣рд▓реА рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЯрд╛рдЗрдк рд╕рд┐рд╕реНрдЯрдо рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрдкрдХреЗ рдЗрдЪреНрдЫрд┐рдд рдЖрдХрд╛рд░ рдХреЛ рд╡реНрдпрдХреНрдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИред

рдореБрдЭреЗ рдЙрддрдирд╛ рд╣реА рд╢рдХ рдерд╛ред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рд╣рдо рдЗрдВрдбреЗрдХреНрд╕ рд╕рд┐рдЧреНрдиреЗрдЪрд░ рд╡рд╛рд▓реА рдХрд┐рд╕реА рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд╕рд╛рде "рдХрдВрдХреНрд░реАрдЯ" рд╢реЗрдк рдХреЛ рдорд┐рд▓рд╛рддреЗ рд╣реИрдВ, рд╡рд╣ рдХреЗрд╡рд▓ рдПрдХ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рд╣реИред

рдХреНрдпрд╛ рдореИрдВ рдорд╛рди рд╕рдХрддрд╛ рд╣реВрдБ рдХрд┐ рдЖрдк рдЙрд╕ рдЪрд░реНрдЪрд╛ рдореЗрдВ рднрд╛рдЧ рд▓реЗрдиреЗ рдХреЗ рдЗрдЪреНрдЫреБрдХ рд╣реЛрдВрдЧреЗ?

рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗред рдореИрдВ рдЧреИрд░-рдкреБрдирд░рд╛рд╡рд░реНрддреА CSSProperties рдХреЗ рд╕рд╛рде рдереЛрдбрд╝рд╛ рдФрд░ рд╕рдордп рдмрд┐рддрд╛рдКрдВрдЧрд╛ рдФрд░ рдлрд┐рд░ рдЙрди рдкреНрд░рдХрд╛рд░реЛрдВ рдореЗрдВ рд╣рдо рдЬреЛ рдЦреЛрдЬ рд░рд╣реЗ рд╣реИрдВ рдЙрд╕реЗ рд╕реНрдкрд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдФрд░ рдкрд░реАрдХреНрд╖рдг рд▓рд┐рдЦреЗрдВрдЧреЗред рдореБрдЭреЗ рд╕рдВрджреЗрд╣ рд╣реЛрдЧрд╛ рдХрд┐ рдЕрдиреНрдп рд╕реАрдПрд╕рдПрд╕-рдЗрди-рдЬреЗрдПрд╕ рд╕реНрдЯрд╛рдЗрд▓рд┐рдВрдЧ рд╕рдорд╛рдзрд╛рди рд╕рдорд╛рди рдкреНрд░рджрд░реНрд╢рди рдмрд╛рдзрд╛рдУрдВ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддреЗ рд╣реИрдВред

рдореИрдВ рдХрд▓ рдЙрди рдЖрджреЗрд╢реЛрдВ рдХреЛ рдЖрдЬрд╝рдорд╛рдЙрдВрдЧрд╛ (рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореБрдЭреЗ рдЙрд▓реНрд▓реЗрдЦ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдореИрдВ рдкреНрд░рд╢рд╛рдВрдд рд╕рдордп рдкрд░ рд╣реВрдВ рдФрд░ рдЕрдореЗрд░рд┐рдХреА рдЫреБрдЯреНрдЯрд┐рдпреЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд░рддрд╛ рд╣реВрдВ)ред

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рд╣рдо рдЗрдВрдбреЗрдХреНрд╕ рд╕рд┐рдЧреНрдиреЗрдЪрд░ рд╡рд╛рд▓реА рдХрд┐рд╕реА рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд╕рд╛рде "рдХрдВрдХреНрд░реАрдЯ" рд╢реЗрдк рдХреЛ рдорд┐рд▓рд╛рддреЗ рд╣реИрдВ, рд╡рд╣ рдХреЗрд╡рд▓ рдПрдХ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рд╣реИред

рдзрдиреНрдпрд╡рд╛рдж, рдореИрдВ рдЗрд╕ рдмрд╛рдд рд╕реЗ рдЬреВрдЭ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдЗрд╕реЗ рдХреИрд╕реЗ рд╡реНрдпрдХреНрдд рдХрд┐рдпрд╛ рдЬрд╛рдПред рд╣рд╛рдВ, рдЖрдк рд╕рд╣реА рд╣реИрдВ рдХрд┐ рдЗрдВрдбреЗрдХреНрд╕ рд╕рд┐рдЧреНрдиреЗрдЪрд░ рд╡рд╣ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИ рдЬреЛ рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдПрдХ рдкреНрд░рдХрд╛рд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣рдорд╛рд░реЗ рдХреБрдЫ рд╡рд┐рдЪрд╛рд░ рд╣реИрдВ рдЬреЛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдореЗрдВ рдкреНрд░рджрд░реНрд╢рди рдкреНрд░рднрд╛рд╡реЛрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдореБрдЭреЗ рд╕рдВрджреЗрд╣ рд╣реЛрдЧрд╛ рдХрд┐ рдЕрдиреНрдп рд╕реАрдПрд╕рдПрд╕-рдЗрди-рдЬреЗрдПрд╕ рд╕реНрдЯрд╛рдЗрд▓рд┐рдВрдЧ рд╕рдорд╛рдзрд╛рди рд╕рдорд╛рди рдкреНрд░рджрд░реНрд╢рди рдмрд╛рдзрд╛рдУрдВ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддреЗ рд╣реИрдВред

рдмрд╣реБрдд рдЬрд╝реНрдпрд╛рджрд╛ред рд╣рдо рдЙрдореНрдореАрдж рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХрд┐ рд╣рдо рдЖрдкрдХреЗ рд▓рд┐рдП рдЬреЛ рдХреБрдЫ рднреА рдХрд░рддреЗ рд╣реИрдВ рдЙрд╕реЗ рдкреВрд░реЗ рдкрд╛рд░рд┐рд╕реНрдерд┐рддрд┐рдХреА рддрдВрддреНрд░ рдХреЛ рдмреЗрд╣рддрд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╛рдорд╛рдиреНрдпреАрдХреГрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореБрдЭреЗ рдХреБрдЫ рд╕реНрдкрд╖реНрдЯ рдпрд╛рдж рдЖ рд░рд╣рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдлрдВрд╕ рдЧрдпрд╛ рд╣реВрдБред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдореИрдВрдиреЗ рд╡рд┐рдВрдбреЛрдЬрд╝ рдХреЛ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ - рдЪреАрдЬреЗрдВ рд▓рд┐рдирдХреНрд╕ рдкрд░ рдмреЗрд╣рддрд░ рдХрд╛рдо рдХрд░рдиреЗ рд▓рдЧрддреА рд╣реИрдВред рдореБрдЭреЗ рдмрддрд╛рдПрдВ рдХрд┐ рдХреНрдпрд╛ рдЖрдк рдЙрд╕рдореЗрдВ рдЦреБрджрд╛рдИ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рджреВрд╕рд░рд╛, рдореБрдЭреЗ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП yarn typescript рдорд┐рд▓ рд╕рдХрддрд╛ рд╣реИ - рд╕рдлрд╛рдИ рд╕реЗ, рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдореИрдВ рдХрд╣ рд╕рдХрддрд╛ рд╣реВрдВ - рд▓реЗрдХрд┐рди рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╢реБрджреНрдз tsc рдХреЗ рдмрдЬрд╛рдп tslint рдЪрд▓ рд░рд╣рд╛ рд╣реИред рдЬрдм рдореИрдВ рдЙрд╕реА tsconfig.json (рдореИрдВ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд╢реИрд▓рд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдкрд░реАрдХреНрд╖рдг рдХрд░ рд░рд╣рд╛ рд╣реВрдВ) рдкрд░ tsc рдЪрд▓рд╛рддрд╛ рд╣реВрдВ, рддреЛ рдореБрдЭреЗ ~ 40 рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдорд┐рд▓рддреА рд╣реИрдВред рдореИрдВ рдХреНрдпрд╛ рдЧрд▓рдд рдХрд░ рд░рд╣рд╛ рд╣реВрдВ? рдкреНрд░реЛрдлрд╛рдЗрд▓рд┐рдВрдЧ рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП, рдПрдХ рдПрдХрд▓ рдЯреАрдПрд╕рд╕реА рдЖрдордВрддреНрд░рдг рдХреЗ рд▓рд┐рдП рд░реЗрдкреНрд░реЛ рдХреЛ рдиреАрдЪреЗ рд▓рд╛рдирд╛ рдмрд╣реБрдд рдорджрджрдЧрд╛рд░ рд╣реЛрдЧрд╛ред

@amcasey yarn typescript рд╕рдВрдХрд▓рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рд╣реИ рдмрд▓реНрдХрд┐ рд╣рдорд╛рд░реЗ рдкреНрд░рдХрд╛рд░реЛрдВ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░ рд░рд╣рд╛ рд╣реИред рд╣рдо рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЯрд╛рдЗрдк рдХрд┐рдП рдЧрдП рд░реЗрдкреЛ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рд╕рдорд╛рди рд╕реЗрдЯрдЕрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВред packages/* рдореЗрдВ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдлрд╝рд╛рдЗрд▓реЗрдВ рд▓рдЧрднрдЧ рд╣рдореЗрд╢рд╛ рдмрдпрд╛рдиреЛрдВ рдХрд╛ рдПрдХ рд╕рдореВрд╣ рд╣реЛрддреА рд╣реИрдВ рдЬреЛ рдпрд╛ рддреЛ рдкрд╛рд╕ рд╣реЛ рдЬрд╛рддреА рд╣реИрдВ рдпрд╛ рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддреА рд╣реИрдВ рдЬрд┐рд╕реЗ рд╣рдо $ExpectError рд╕рд╛рде рдкрдХрдбрд╝ рд▓реЗрддреЗ рд╣реИрдВред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ "рд╡рд╛рд╕реНрддрд╡рд┐рдХ рджреБрдирд┐рдпрд╛" рдкрд░реАрдХреНрд╖рдг рдХрд╛ рдорд╛рдорд▓рд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИ tsc рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╣рдорд╛рд░реЗ рдбреЙрдХреНрд╕ рдкрд░ yarn workspace docs run tsc -p tsconfig.json рдХреЗ рдмрд╛рдж рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдЬреЛрдбрд╝реЗ рдЧрдП skipLibCheck: true рдФрд░ noEmit: true рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП ./docs/tsconfig.json :

--- a/docs/tsconfig.json
+++ b/docs/tsconfig.json
@@ -3,6 +3,8 @@
   "include": ["types", "src/pages/**/*"],
   "compilerOptions": {
     "allowJs": false,
-    "noUnusedLocals": true
+    "noUnusedLocals": true,
+    "noEmit": true,
+    "skipLibCheck": true
   }
 }

@ eps1lon рд╕реНрдкрд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдореИрдВ рд░реЛрдорд╛рдВрдЪрд┐рдд рдирд╣реАрдВ рд╣реВрдВ рдХрд┐ tslint рдзреАрдорд╛ рд╣реЛ рдЧрдпрд╛, рд▓реЗрдХрд┐рди рдореИрдВ рдПрдХ рд╕рдордп рдореЗрдВ рдПрдХ рдЪрд░ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдореИрдВ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд╡рд┐рднрд┐рдиреНрди рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рд╕реБрдЭрд╛рдП рдЧрдП рдбреЙрдХреНрд╕ рдмрд┐рд▓реНрдб рдХреЛ рдЪрд▓рд╛рдКрдВрдЧрд╛ рдФрд░ рджреЗрдЦреВрдВрдЧрд╛ рдХрд┐ рдХреНрдпрд╛ рдХреБрдЫ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рддрд╛ рд╣реИред рдзрдиреНрдпрд╡рд╛рдж!

рдпрд╣ рд╕реЗрдЯрдЕрдк рдПрдХрджрдо рд╕рд╣реА рд╣реИред рдореБрдЭреЗ 3.3 рдФрд░ 3.4 рдХреЗ рдмреАрдЪ рдЪреЗрдХ рдХрд╛ рд╕рдордп рджреЛрдЧреБрдирд╛ рджрд┐рдЦрд╛рдИ рджреЗ рд░рд╣рд╛ рд╣реИред

| рд╕рдВрд╕реНрдХрд░рдг | рдЪреЗрдХ рдЯрд╛рдЗрдо |
|-|-|
| 3.2 | 16.71s |
| 3.3 | 16.79s |
| 3.4 | 35.25s |
| 3.5 | 21.40s |
| 3.6 | 23.10s |
| 3.7 | 27.39 рдПрд╕ |

рдореИрдВ рдереЛрдбрд╝рд╛ рдФрд░ рдЦреЛрджреВрдВрдЧрд╛, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рд╕рд╢рд░реНрдд рдкреНрд░рдХрд╛рд░реЛрдВ рдХрд╛ 3.3 рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЕрдзреВрд░рд╛ рдерд╛, 3.4 рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдзреАрдорд╛ рдерд╛, рдФрд░ 3.5 рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЕрдЪреНрдЫрд╛ рд╣реИред рддреЛ, рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдпрд╣ рд╢рд╛рдпрдж рдЕрдкреЗрдХреНрд╖рд┐рдд рд╣реИред

рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдореБрдЭреЗ рд╕рдВрджреЗрд╣ рд╣реИ рдХрд┐ рдЗрд╕ рдкрд░рд┐рд╡рд░реНрддрди рдиреЗ рдЗрд╕ рдмрдЧ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдордВрджреА рдХреА рд╢реБрд░реБрдЖрдд рдХреАред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ 3.5 рдФрд░ 3.7 рдХреЗ рдмреАрдЪ рдЪреЗрдХ рдЪрд▓рд╛рдиреЗ рдореЗрдВ рд▓рдЧрдиреЗ рд╡рд╛рд▓реЗ рд╕рдордп рдореЗрдВ 6-рд╕реЗрдХрдВрдб рдХреА рд╡реГрджреНрдзрд┐ рд╣реБрдИ рдереАред рдпрд╣ рдХрд╛рдлреА рд╕рд╛рд░рдЧрд░реНрднрд┐рдд рд▓рдЧрддрд╛ рд╣реИред

@embeddedt рд╡реЗ рд╕рдВрдЦреНрдпрд╛рдПрдБ рдкреНрд░рддреНрдпреЗрдХ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде рдПрдХрд▓ рд░рди рд╕реЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╕рдВрднрд╡рддрдГ рдХрд╛рдлреА рд╢реЛрд░ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдореИрдВ рдЦреБрджрд╛рдИ рдХрд░реВрдВрдЧрд╛ рдФрд░ рджреЗрдЦ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдореБрдЭреЗ рдХреБрдЫ рдорд┐рд▓ рд╕рдХрддрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред

рдореИрдВрдиреЗ рдЗрд╕реЗ рд▓рд┐рдирдХреНрд╕ рд╡реАрдПрдо рдкрд░ рд░рд┐рдбреАрдб рдХрд┐рдпрд╛ рдФрд░ 3.7 рд▓рдЧрд╛рддрд╛рд░ 20-25% 3.5 рд╕реЗ рдзреАрдорд╛ рдерд╛ред

рдпрд╣ рджреНрд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдирд╛ рдХрд╛рдлреА рдХрдард┐рди рд╕рд╛рдмрд┐рдд рд╣реБрдЖ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдПрдХ рд╣реА рдмрд┐рд▓реНрдб рдХреЗ рд▓рдЧрд╛рддрд╛рд░ рд░рди ~ 5% рд╕реЗ рднрд┐рдиреНрди рд╣реЛрддреЗ рд╣реИрдВ рдФрд░ 3.5 рдФрд░ 3.6 рдХреЗ рдмреАрдЪ рдпрд╛ 3.6 рдФрд░ 3.7 рдХреЗ рдмреАрдЪ рдХрд╛ рдЕрдВрддрд░ рдХреЗрд╡рд▓ ~ 10% рд╣реИред

рдПрдХ рд╕рдВрджреЗрд╣рд╛рд╕реНрдкрдж рдмрд╛рдд рдореИрдВрдиреЗ рджреЗрдЦреА рд╣реИ рдХрд┐ styled-components TS >= 3.7 рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ .d.ts рдлрд╝рд╛рдЗрд▓реЗрдВ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рддреБрд▓рдирд╛ рд╕реЗрдм рд╕реЗ рд╕реЗрдм рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреА рд╣реИред

рдореЗрд░реЗ рд▓рд┐рдП рдмрд╣реБрдд рдЖрд╢реНрдЪрд░реНрдп рдХреА рдмрд╛рдд рд╣реИ, рдирдП styled-components рдкреНрд░рдХрд╛рд░ рддреЗрдЬ рдкреНрд░рддреАрдд рд╣реЛрддреЗ рд╣реИрдВред рд╕реЗрдм рд╕реЗ рд╕реЗрдм рдХреА рддреБрд▓рдирд╛ рдХрд░рдирд╛ рдЕрднреА рднреА рдЬрд╛рдВрдЪ рдХреЛ рдЖрд╕рд╛рди рдмрдирд╛ рджреЗрдЧрд╛ред

рдореИрдВ рдПрдХ рдЪрддреБрд░ рд╕рдорд╛рдзрд╛рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рд╕реЛрдЪ рд╕рдХрддрд╛ рдерд╛, рдЗрд╕рд▓рд┐рдП рдореИрдВ рд╕рдВрдХрд▓рди рд╕рдордп рдХреЛ рдорд░реНрдЬ рдХрд░рдХреЗ рдорд░реНрдЬ рдХрд░рдиреЗ рдФрд░ рд╕реНрдкрд╛рдЗрдХреНрд╕ рдХреА рддрд▓рд╛рд╢ рдХрд░рдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВред рдореБрдЭреЗ рдХрд▓ рдирдВрдмрд░ рдорд┐рд▓рдиреЗ рдХреА рдЙрдореНрдореАрдж рд╣реИред

@amcasey рдЗрд╕реЗ рджреЗрдЦрдиреЗ рдореЗрдВ рдЖрдкрдХреЗ рдкреНрд░рдпрд╛рд╕реЛрдВ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж! TS рдЯреАрдо рдФрд░ рд╕рд╛рдордЧреНрд░реА UI рдХреЗ рд╕рджрд╕реНрдпреЛрдВ рдХреЛ рдПрдХ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реБрдП рджреЗрдЦрдирд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрдЪреНрдЫрд╛ рд╣реИред рдореИрдВ рдЗрд╕ Github рдореБрджреНрджреЗ рдкрд░ рдареЛрдХрд░ рдЦрд╛рдИ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рд╕рд╛рдордЧреНрд░реА UI рдХреЗ рд╕рд╛рде рд╣рдорд╛рд░рд╛ рд╕рдВрдкрд╛рджрдХ рдЕрдиреБрднрд╡ рдЗрддрдирд╛ рдзреАрдорд╛ рдХреНрдпреЛрдВ рд╣реИ (рд╣рдо рдЗрд╕реЗ рдХрд╛рдо рдкрд░ рджреЛ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ)ред рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдкреБрд╖реНрдЯрд┐ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╣рдо VsCode рдХреЗ рдЕрдВрджрд░ рдЗрдВрдЯреЗрд▓рд┐рдЬреЗрдВрд╕ рдФрд░ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдореЗрдВ рдХрд╛рдлреА рдорд╣рддреНрд╡рдкреВрд░реНрдг рдкреНрд░рднрд╛рд╡ рджреЗрдЦ рд░рд╣реЗ рд╣реИрдВред

рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░ рд╣рдореЗрдВ рдЕрдкрдиреЗ рдЬреЗрдПрд╕рдПрд╕ рдореЗрдВ рд╢реЗрд╖ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рд▓рд┐рдП рддреЗрдЬрд╝ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдереЛрдбрд╝реА рд╕реА рдкреНрд░рдХрд╛рд░ рдХреА рд╕реБрд░рдХреНрд╖рд╛ рдХрд╛ рд╡реНрдпрд╛рдкрд╛рд░ рдХрд░рдиреЗ рдореЗрдВ рдЦреБрд╢реА рд╣реЛрдЧреАред рдХрднреА-рдХрднреА рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рд░реНрд╡рд░ рдХреЛ рдХреЛрдб рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рд▓рд┐рдП рдкрдХрдбрд╝рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рдиреЗ рдореЗрдВ 8-10 рд╕реЗрдХрдВрдб рдХрд╛ рд╕рдордп рд▓рдЧрддрд╛ рд╣реИ

рддреАрди-рд░рди рдФрд╕рдд рдХреЗ рд╕рд╛рде рднреА, рдбреЗрдЯрд╛ рдмрд╣реБрдд рд╢реЛрд░ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╡рд╣рд╛рдБ рдкрд░ рдХреНрд░рдо рдореЗрдВ рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рдбреНрд░реЙрдк рд╣реЛ рдЧрдпрд╛ рд▓рдЧрддрд╛ рд╣реИ https://github.com/microsoft/TypeScript/commit/ad322a561a301ae357da051b9221b2222c13be36 рдкрд░ рдПрдХ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╡реГрджреНрдзрд┐ (рдореЛрдЯреЗ рддреМрд░ рдкрд░ рдкрд┐рдЫрд▓реЗ рд╕реНрддрд░ рдХреЛ рд╡рд╛рдкрд╕) https://github.com/microsoft/TypeScript /commit/480b73915fdd805952fd355e4cf3e1bc803e0878 рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдКрдкрд░ рдХреА рдУрд░ рд░реБрдЭрд╛рди (рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдмрд╣реБрдд рд╕рдорд╛рди рджрд┐рдЦрддрд╛ рд╣реИ рдФрд░ рдореБрдЭреЗ рдкрд░реНрдпрд╛рд╡рд░рдгреАрдп рдХрд╛рд░рдХреЛрдВ рдкрд░ рд╕рдВрджреЗрд╣ рд╣реИ) рдЬрд┐рд╕рдореЗрдВ https://github.com/microsoft/TypeScript/commit/c5e6d95e930048a033868d72440a9296904a33ec рдкрд░ рдПрдХ рд╡рд┐рд╢реЗрд╖ рд╕реНрдкрд╛рдЗрдХ рд╢рд╛рдорд┐рд▓ рд╣реИ

рдКрдкрд░ рдХреА рдУрд░ рд░реБрдЭрд╛рди рдЬрд╛рдВрдЪ рдХреЗ рд▓рд┐рдП рдЦрдбрд╝рд╛ рд╣реИ рдФрд░ рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдЗрд╕рдХрд╛ рдХреНрдпрд╛ рдХрд╛рд░рдг рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЕрд╕рддрдд рдордВрджреА рдПрдХ рд╕рд╛рде рдЗрддрдиреЗ рдХрд░реАрдм рд╣реЛ рдХрд┐ рд╢реЛрд░ рдЙрдиреНрд╣реЗрдВ рдПрдХ рд╣реА рд╡рдХреНрд░ рдЬреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИред

рдореИрдВ рдкреНрд░рддрд┐ рдкреНрд░рддрд┐рдмрджреНрдзрддрд╛ 10 рд░рди рддрдХ рдЙрдЫрд▓рд╛ рдФрд░ рдЕрдм рдврд▓рд╛рди рд╡рд╛рд▓реЗ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдЪрд╛рд░ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкреНрд░рддрд┐рдЧрдорди рд╣реИрдВред :рдореБрд╕реНрдХреБрд░рд╛рдУ:

https://github.com/microsoft/TypeScript/commit/26caa3793e310e271dee8adc1804486e5b0749f (~700ms)
https://github.com/microsoft/TypeScript/commit/250d5a8229e17342f36fe52545bb68140db96a2e (~500ms)
https://github.com/microsoft/TypeScript/commit/7ce793c5b8c621af5ce50af0ca3958c7bd6541bf (~1300ms)
https://github.com/microsoft/TypeScript/commit/28050d5c47c6cd7627555f12cf13b1062f80322a (~400ms)

(рдкреНрд░рддрд┐рдЧрдорди рд╢реБрд░реВ рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдХреБрд▓ рд╕рдордп ~33s рдерд╛ред)

рдЙрдореНрдореАрджреЛрдВ рдХреЛ рдереЛрдбрд╝рд╛ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП: рдпрд╣ рдХрд╛рдлреА рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рдЗрдирдореЗрдВ рд╕реЗ рдХрдИ рд░рд┐рдЧреНрд░реЗрд╢рди рдореВрд▓реНрдпрд╡рд╛рди рдЕрддрд┐рд░рд┐рдХреНрдд рдЪреЗрдХ рд╕рд╛рдмрд┐рдд рд╣реЛрдВрдЧреЗ рдФрд░, рднрд▓реЗ рд╣реА рд╣рдо рдЙрди рд╕рднреА рдЪреЗрдХреЛрдВ рдХреЛ рдореБрдлреНрдд рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣реЗ, рдлрд┐рд░ рднреА рд╣рдо рдХреЗрд╡рд▓ 20% рдХреА рдЫреВрдЯ рд▓реЗрдВрдЧреЗ "рдмрд╣реБрдд рд▓рдВрдмрд╛" ".

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рдореИрдВрдиреЗ рд▓рд┐рдВрдХ рдЕрдкрдбреЗрдЯ рдХрд░ рджрд┐рдП рд╣реИрдВред рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рд╕рдордп рдХреЗ рд╕рд╛рде рдкреАрдЫреЗ рдХреА рдУрд░ рдЬрд╛ рд░рд╣рд╛ рдерд╛, рдореИрдВ рднреНрд░рдорд┐рдд рд╣реЛ рдЧрдпрд╛ рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рддрд┐рдЧрдорди _before_ рдорд░реНрдЬ рдХреЛ рдзреНрд╡рдЬрд╛рдВрдХрд┐рдд рдХрд┐рдпрд╛ред

@ eps1lon рдЗрд╕ рдУрд░ рд╕реЗ рдХрд┐рд╕реА рдиреЗ рд╕реБрдЭрд╛рд╡ рджрд┐рдпрд╛ рдХрд┐ @ts-ignore рдХреЛ рд╣рдЯрд╛рдиреЗ рд╕реЗ рдорджрдж рдорд┐рд▓ рд╕рдХрддреА рд╣реИред рдореВрд▓ рд░реВрдк рд╕реЗ, рдЬрдм рдХрд┐рд╕реА рддреНрд░реБрдЯрд┐ рдХрд╛ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рд╕рд░реНрд╡реЛрдЪреНрдЪ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рддреНрд░реБрдЯрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдЪреНрдЫреА рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рд╕рдВрднрд╡ рд╣реИ рдХрд┐ рдЕрддрд┐рд░рд┐рдХреНрдд рдХрд╛рд░реНрдп рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдпрджрд┐ рд╡рд╣ рдЬрд╛рдирдХрд╛рд░реА рдмрд╛рдж рдореЗрдВ рдЫреЛрдбрд╝ рджреА рдЬрд╛рддреА рд╣реИ ( @ts-ignore ), рддреЛ рд╡рд╣ рд╕рдордп рдмрд░реНрдмрд╛рдж рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред (рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рдЖрд╕рд╛рди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдХрд┐рд╕реА рддреНрд░реБрдЯрд┐ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред) рдПрдХ рд╡реИрдХрд▓реНрдкрд┐рдХ рд░рдгрдиреАрддрд┐ рд╕реНрдкрд╖реНрдЯ рдкреНрд░рдХрд╛рд░ рдХреЗ рдЕрднрд┐рдХрдерди ( any ) рдХреЛ рддрдм рддрдХ рдЬреЛрдбрд╝рдирд╛ рд╣реИ рдЬрдм рддрдХ рдХрд┐ рд╕рдВрдХрд▓рдХ рд╢рд┐рдХрд╛рдпрдд рдХрд░рдирд╛ рдмрдВрдж рди рдХрд░ рджреЗред

@ eps1lon рдЗрд╕ рдУрд░ рд╕реЗ рдХрд┐рд╕реА рдиреЗ рд╕реБрдЭрд╛рд╡ рджрд┐рдпрд╛ рдХрд┐ @ts-ignore рдХреЛ рд╣рдЯрд╛рдиреЗ рд╕реЗ рдорджрдж рдорд┐рд▓ рд╕рдХрддреА рд╣реИред

docs/ рдореЗрдВ рд╣рдорд╛рд░рд╛ рдХреЗрд╡рд▓ рдПрдХ рд╣реА рдЙрдкрдпреЛрдЧ рдерд╛ред рдореИрдВрдиреЗ рдЗрд╕реЗ рд╡реИрд╕реЗ рднреА рд╣рдЯрд╛ рджрд┐рдпрд╛ рд╣реИ: #19504

рдИрдорд╛рдирджрд╛рд░ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ @ts-ignore рдЙрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдПрдХ рд╡рд┐рд░реЛрдзреА рдкреИрдЯрд░реНрди рд╣реИред рдпрд╣ рди рдХреЗрд╡рд▓ рдЖрдкрдХреЛ рдЙрдкрдпреЛрдЧреА рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдЕрд░реНрдерд╛рдд рд╣рдореЗрдВ рдХрд┐рд╕ рдкреНрд░рдХрд╛рд░ рдХреА рддреНрд░реБрдЯрд┐ рд╣реИ рдмрд▓реНрдХрд┐ рдпрд╣ рдПрдХ рдкреВрд░реНрдг рдмрд╛рдзрд╛ рднреА рд╣реИред

рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛрдореИрдВ рдмрддрд╛ рд╕рдХрддрд╛ рд╣реВрдВ @ts-ignore рдХреЗрд╡рд▓ .js рдлрд╛рдЗрд▓реЛрдВ рдореЗрдВ рдЙрдкрдпреЛрдЧреА рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ рдЯрд╛рдЗрдк-рдЪреЗрдХ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред

рд╣рдореНрдо, рдпрд╣ рд▓рдЧрднрдЧ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдпрд╣ рдирд╣реАрдВ рд╕рдордЭрд╛рддрд╛ рд╣реИ рдХрд┐ рдкреАрдЖрд░ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢реЛрдВ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХреНрдпреЛрдВ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рд╡рд╛рдкрд╕ рд▓реЗ рдЧрдпрд╛ред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдПрдХ рд╕реБрдзрд╛рд░ рдХреА рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИред рдореИрдВ

рдкреНрд░рджрд░реНрд╢рди рдХреЛ рд╡рд╛рдкрд╕ рд▓реЗрдиреЗ рд╡рд╛рд▓реЗ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдмрдЧ:
https://github.com/microsoft/TypeScript/issues/36562
https://github.com/microsoft/TypeScript/issues/36564
https://github.com/microsoft/TypeScript/issues/36565
https://github.com/microsoft/TypeScript/issues/36566
https://github.com/microsoft/TypeScript/issues/36567

рдирд┐рд╖реНрдкрдХреНрд╖ рдЪреЗрддрд╛рд╡рдиреА: рдЗрдирдореЗрдВ рд╕реЗ рдХреБрдЫ рдХреЗ рд╕рд╛рд░реНрдердХ рд╣реЛрдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИред

рдореИрдВ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреА рджреБрдирд┐рдпрд╛ рдореЗрдВ рдХрд╛рдлреА рдирдпрд╛ рд╣реВрдВ, рдЦрд╛рд╕рдХрд░ рдЬрдм рд╕реНрдЯрд╛рдЗрд▓рд┐рдВрдЧ-рдЗрди-рдЬреЗрдПрд╕ рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреА рдмрд╛рдд рдЖрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдкрд┐рдЫрд▓реЗ рдорд╣реАрдиреЗ рд╕реЗ рдЪреБрдкрдЪрд╛рдк рдЗрд╕ рдзрд╛рдЧреЗ рдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдореИрдВ рд╕рдВрднрд╛рд╡рд┐рдд рд╕рдорд╛рдзрд╛рди рдкрд░ рд▓реЛрдЧреЛрдВ рдХреЗ рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЛ рд╕реБрдирдиреЗ рдХреЗ рд▓рд┐рдП рдЙрддреНрд╕реБрдХ рдерд╛ред рдХрдо рд╕реЗ рдХрдо рдЕрд▓реНрдкрд╛рд╡рдзрд┐ рдореЗрдВред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХреБрдЫ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ (рд╕реНрд╡рдпрдВ рдПрдХ рд╣реЛрдиреЗ рдХреЗ рдирд╛рддреЗ) рдмрд┐рд▓реНрдЯ-рдЗрди рд╕реНрдЯрд╛рдЗрд▓рд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХрд╛ рднрд╛рд░реА рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рдпрд╛ рдЗрд╕реЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЯрд╛рд▓рддреЗ рд╣реИрдВред рдореИрдВ рдРрд╕рд╛ рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдЗрд╕рд▓рд┐рдП рдХрд░рддрд╛ рд╣реВрдВ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рд╕рд╛рджреЗ рд╕реАрдПрд╕рдПрд╕ рдпрд╛ рдПрд╕рдПрдПрд╕ рд╕реЗ рдХрд╣реАрдВ рдЕрдзрд┐рдХ рдкрд░рд┐рдЪрд┐рдд рд╣реВрдВ рдФрд░ рдореБрдЭреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЬреЗрдПрд╕ рд╕реНрдЯрд╛рдЗрд▓рд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХрд╛ рдкреНрд░рднрд╛рд╡реА рдврдВрдЧ рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдореЗрдВ рдЦреБрджрд╛рдИ рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рдирд╣реАрдВ рдорд┐рд▓рд╛ рд╣реИред рдореИрдВ рд╕рд┐рд░реНрдл рдЕрдкрдиреЗ рд╡рд░реНрдЧ рдХреЗ рдирд╛рдо рдмрдирд╛рдирд╛ рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реВрдВ, рдПрдХ рдЕрд▓рдЧ рд╕реНрдЯрд╛рдЗрд▓рд╢реАрдЯ рдлрд╝рд╛рдЗрд▓ рд▓рд┐рдЦрддрд╛ рд╣реВрдВ, рдЕрдкрдиреЗ рд░рд┐рдПрдХреНрдЯ рдШрдЯрдХреЛрдВ рдХреЗ рдЕрдВрджрд░ рд╡рд░реНрдЧ рдХреЗ рдирд╛рдореЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рдЖрдЧреЗ рдмрдврд╝рддрд╛ рд╣реВрдВред рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ, рдореИрдВ рд╕реНрдЯрд╛рдЗрд▓ рдХрд░рддрд╛ рд╣реВрдВ рдЬреИрд╕реЗ рдХрд┐ рдореИрдВ рд╕рд╛рджрд╛ HTML рд▓рд┐рдЦ рд░рд╣рд╛ рдерд╛ред

рдРрд╕рд╛ рдХрд╣рд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ, рдХреНрдпрд╛ рдРрд╕рд╛ рдзреНрд╡рдЬ рдЬреЛрдбрд╝рдирд╛ рд╕рдВрднрд╡/рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд╣реИ рдЬреЛ рд╕реНрдЯрд╛рдЗрд▓рд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдорд╣рдВрдЧреЗ рд╣рд┐рд╕реНрд╕реЛрдВ рдХреЗ рд▓рд┐рдП рдЯрд╛рдЗрдк рдЪреЗрдХрд┐рдВрдЧ рдХреЛ рдмрдВрдж рдХрд░ рджреЗрддрд╛ рд╣реИ (рд╕рдВрднрд╡рддрдГ рд╕рд╢рд░реНрдд рд░реВрдк рд╕реЗ type CSSProperties = any рдЬреИрд╕реА рдЪреАрдЬреЗрдВ рдХрд░рдХреЗ)? рдореИрдВ рд╕реНрдЯрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд▓реЛрдЧреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд▓рд┐рдП рдЖрдВрдХрдбрд╝реЗ рдирд╣реАрдВ рдЬрд╛рдирддрд╛, рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдмрд╣реБрдд рдиреБрдХрд╕рд╛рди рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИ (рдмрд╢рд░реНрддреЗ рдХрд┐ рдЙрд╕ рдзреНрд╡рдЬ рд╕реЗрдЯ рдХреЗ рд╕рд╛рде рдЯрд╛рдЗрдкрд┐рдВрдЧ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЪреЗрдХ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реЛ) , рдФрд░ рдпрд╣ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рдХрдо рд╕реЗ рдХрдо рдПрдХ рд╡рд░реНрдЧ рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдмреЗрд╣рддрд░ рдмрдирд╛рдиреЗ рдХрд╛ рдПрдХ рддреНрд╡рд░рд┐рдд рддрд░реАрдХрд╛ рд╣реЛрдЧрд╛ред

рдмрд╕ рд╕рд╛рдорд╛рдиреНрдп рд╡рд┐рдЪрд╛рд░ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛; рдЗрд╕реЗ рдиреАрдЪреЗ рд╢реВрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рддрдВрддреНрд░ рдорд╣рд╕реВрд╕ рдХрд░реЗрдВред :рдереЛрдбрд╝рд╛_рдореБрд╕реНрдХреБрд░рд╛рддрд╛_рдЪреЗрд╣рд░рд╛:

@embeddedt рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛, рдХрд┐рд╕реА рдЪреАрдЬрд╝ рдХреЛ any рд░реВрдк рдореЗрдВ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░рдирд╛ рдЙрд╕ рдкреНрд░рддреАрдХ рдХреЗ рд▓рд┐рдП рдкреНрд░рдХрд╛рд░ рдХреА рдЬрд╛рдБрдЪ рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рддрд░реАрдХрд╛ рд╣реИред рдРрд╕рд╛ рдХрд╣рдиреЗ рдХреЗ рдмрд╛рдж, рдореБрдЭреЗ рдпрд╛рдж рдирд╣реАрдВ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдЖрдк рдкрд┐рдЫрд▓реА рдШреЛрд╖рдгрд╛ рдХреЛ рд░реЛрдХ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╛ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рд╕реБрдЭрд╛рд╡ рджреЗрддреЗ рд╣реИрдВ, рдЖрдкрдХреЛ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдШреЛрд╖рдгрд╛ рдореБрджреНрджреЛрдВ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдХрдВрдкрд╛рдЗрд▓рд░ рд╕рдорд░реНрдерди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред

рдирдП рдирдВрдмрд░ (рдЕрд▓рдЧ рдорд╢реАрди, рдЕрд▓рдЧ рд╕рдордп рдореАрдЯреНрд░рд┐рдХ):

| рд╕рдВрд╕реНрдХрд░рдг | рдХреБрд▓ рд╕рдордп |
|-|-|
| 3.5.3 | 32.5s |
| 3.7.5 | 35.9s |
| рдорд╛рд╕реНрдЯрд░ | 29.9s |

рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ рдКрдкрд░ рдкреЛрд╕реНрдЯ рдХреА рдЧрдИ рдХреБрдЫ рд╕рдорд╕реНрдпрд╛рдПрдВ рдЕрднреА рднреА рдЦреБрд▓реА рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╣рдо рдореВрд▓ рд░реВрдк рд╕реЗ 3.5 perf (рдЗрд╕ рдмреЗрдВрдЪрдорд╛рд░реНрдХ рдХреЗ рд▓рд┐рдП) рдкрд░ рд╡рд╛рдкрд╕ рдЖ рдЧрдП рд╣реИрдВред рдЬрд╛рд╣рд┐рд░ рд╣реИ, рдпрд╣ рдЕрднреА рднреА рд╣рдорд╛рд░реА рдЕрдкреЗрдХреНрд╖рд╛ рд╕реЗ рдмрд╣реБрдд рдзреАрдорд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХрд╛ рдЕрдЧрд▓рд╛ рдмреИрдЪ рд╕рд╛рдордЧреНрд░реА-рдпреВрдЖрдИ рдкрдХреНрд╖ рдкрд░ рд╣реЛрдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИред

рд╣рдорд╛рд░реЗ рдкрд░реАрдХреНрд╖рдг рд╕реВрдЯ рдкрд░ 3.8.1 рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЧрдпрд╛ рдФрд░ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╡реЗ рдкрд┐рдЫрд▓реЗ рд╡рд╛рд▓реЗ рдХреЗ рд░реВрдк рдореЗрдВ 3.2.4 (3.7 рдХрд╛рдлреА рдзреАрдореА рдЧрддрд┐ рд╕реЗ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВред

рд╕рдЪ рдХрд╣реВрдБ рддреЛ, рдореБрдЭреЗ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдирд╣реАрдВ рд╣реЛ рд░рд╣рд╛ рд╣реИ рдХрд┐ рд╣рдо рдирдИ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рдЫреЛрдбрд╝реЗ рдмрд┐рдирд╛ рдХрд┐рддрдирд╛ рдЕрдЪреНрдЫрд╛ рдХрд░ рдкрд╛рдПред : рдореБрд╕реНрдХрд╛рди: рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдереЛрдбрд╝рд╛ рдФрд░ рд╕реБрд╕реНрдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП https://github.com/microsoft/TypeScript/pull/36754), рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдЕрднреА рднреА рд╕рдВрджреЗрд╣ рд╣реИ рдХрд┐ рд╕рдмрд╕реЗ рдкреНрд░рднрд╛рд╡рд╢рд╛рд▓реА рдкрд░рд┐рд╡рд░реНрддрди CSSProperties рдкреНрд░рдХрд╛рд░реЛрдВ рдХрд╛ рд╕рд░рд▓реАрдХрд░рдг рд╣реЛрдЧрд╛ред рдХреНрдпрд╛ рдЖрдкрдХреЛ рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд╕рд╛рде рдЦреЗрд▓рдиреЗ рдХрд╛ рдореМрдХрд╛ рдорд┐рд▓рд╛ рд╣реИ? рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХрдо рд╕реЗ рдХрдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХрд╛ рдПрдХ рд╕рдмрд╕реЗрдЯ (рдЬреИрд╕реЗ @embeddedt) рдПрдХ рдкреВрд░реНрдг рдЬреАрдд рдХреЗ рдмрджрд▓реЗ рдореЗрдВ рдХреБрдЫ рдкреНрд░рдХрд╛рд░ рдХреА рдЬрд╛рдБрдЪ рдХреЛ рдЫреЛрдбрд╝ рдХрд░ рдЦреБрд╢ рд╣реЛрдЧрд╛ред

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХрдо рд╕реЗ рдХрдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХрд╛ рдПрдХ рд╕рдмрд╕реЗрдЯ (рдЬреИрд╕реЗ @embeddedt) рдПрдХ рдкреВрд░реНрдг рдЬреАрдд рдХреЗ рдмрджрд▓реЗ рдореЗрдВ рдХреБрдЫ рдкреНрд░рдХрд╛рд░ рдХреА рдЬрд╛рдБрдЪ рдХреЛ рдЫреЛрдбрд╝ рдХрд░ рдЦреБрд╢ рд╣реЛрдЧрд╛

рдХреНрдпрд╛ TS рдЯреАрдо рдХреЗ рдХрд┐рд╕реА рд╡реНрдпрдХреНрддрд┐ рдиреЗ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдЯреНрд╡реАрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдерд╛ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЬреЛ рд╕рдЦреНрдд рдкреНрд░рдХрд╛рд░ рдЪрд╛рд╣рддрд╛ рд╣реИ, рдЙрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рд╣реИ рдЬреЛ рд╢рд┐рдерд┐рд▓ рд╣реЛрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ? :рдореБрд╕реНрдХреБрд░рд╛рдУ:

рдореЗрд░реЗ рд▓рд┐рдП рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЯрд╛рдЗрдк рдЪреЗрдХрд┐рдВрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рд╣реИ (рдмреНрд░рд╛рдЙрдЬрд╝рд░ devtools рдореЗрдВ рдЖрдкрдХреЗ рд╕реАрдПрд╕рдПрд╕ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреА рдмреЗрд╣рддрд░ рдХреНрд╖рдорддрд╛рдПрдВ рд╣реИрдВ)ред рдпрд╣ рд╕реНрд╡рддрдГ рдкреВрд░реНрдг рдЙрдкрд▓рдмреНрдз рд╣реЛрдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рд╣реИред

рдореИрдВ рд╡рд┐рднрд┐рдиреНрди "рд╕рдВрд╕реНрдХрд░рдгреЛрдВ" рдХреЗ рд╕рд╛рде рдЦреЗрд▓реВрдВрдЧрд╛ рдФрд░ рджреЗрдЦреВрдВрдЧрд╛ рдХрд┐ рд╡реЗ рдХреИрд╕реЗ рдХрд░рддреЗ рд╣реИрдВред

@amcasey рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ https://github.com/eps1lon/mui-types-perf/pull/6 рдФрд░ рдмреЗрдВрдЪрдорд╛рд░реНрдХ рд▓реЙрдЧ рджреЗрдЦреЗрдВред

рдпрд╣ рд╣рдорд╛рд░реЗ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ "рдУрд╡рд░рд▓реЛрдбрд┐рдВрдЧ" рдХреА рдорд╛рддреНрд░рд╛ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдЕрдзрд┐рдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред styled-components рдХреЗрд╡рд▓ рдПрдХ рд╕реНрдерд┐рд░ рд╡рд╕реНрддреБ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдЬрдмрдХрд┐ рд╣рдо рдПрдХ рдердВрдХреЗрдб рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде-рд╕рд╛рде рдкреНрд░рддреНрдпреЗрдХ рд╕рдВрдкрддреНрддрд┐ рдХреЛ рдПрдХ рдердВрдХ рд╣реЛрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИред

рдореБрдЭреЗ рдЯрд╛рдЗрдк рд╕рд┐рдЧреНрдиреЗрдЪрд░ рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдирд╛ рдЕрдЪреНрдЫрд╛ рд▓рдЧреЗрдЧрд╛ (рдЪреВрдВрдХрд┐ рдпрд╣ рдЖрдИрдПрдордУ рджреЗрд╡реЛрдВ рдХреЗ рд▓рд┐рдП рднреА рдЖрд╕рд╛рди рд╣реИ) рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЬреЗрдПрд╕рдПрд╕ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╕реЗ рдореЗрд▓ рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рд╛ рдЧрдпрд╛ рдерд╛ред рдЕрдм рдЬрдмрдХрд┐ рд╣рдо рдЗрд╕рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВ, рд╣рдо рдЖрд╕рд╛рдиреА рд╕реЗ рдкреАрдЫреЗ рдирд╣реАрдВ рд╣рдЯ рд╕рдХрддреЗред рдЦрд╛рд╕рдХрд░ рдЕрдЧрд░ рд▓рд╛рдн 20% рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рд╣реЛред рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдпрд╣ рдЯреВрдЯ-рдлреВрдЯ рдХреЛ рд╕рд╣реА рдард╣рд░рд╛рддрд╛ рд╣реИред

рдХреНрдпрд╛ рд╕рд╢рд░реНрдд рд░реВрдк рд╕реЗ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЛ рдХрдо рд╕рдЯреАрдХ рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реЗрдЯрд┐рдВрдЧ рдХреЗ рдЖрдзрд╛рд░ рдкрд░)? рдпрд╣ рдХрд┐рд╕реА рднреА рдореМрдЬреВрджрд╛ рдХреЛрдб рдХреЛ рдирд╣реАрдВ рддреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рд┐рдП (рдХреНрдпреЛрдВрдХрд┐ рд╕реЗрдЯрд┐рдВрдЧ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдмрдВрдж рд╣реЛ рд╕рдХрддреА рд╣реИ), рдФрд░ рдореЗрд░реЗ рдЬреИрд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рд╕рдХреНрд╖рдо рдХрд░реЗрдЧреА рдЬрд┐рдиреНрд╣реЗрдВ рдЬрдЯрд┐рд▓ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ рддрд╛рдХрд┐ рд╡реЗ рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ рд╡реГрджреНрдзрд┐ рджреЗрдЦ рд╕рдХреЗрдВред

рдореЗрд░реЗ рдЬреИрд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рд╕рдХреНрд╖рдо рдХрд░реЗрдЧрд╛ рдЬрд┐рдиреНрд╣реЗрдВ рдЬрдЯрд┐рд▓ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ рддрд╛рдХрд┐ рд╡реЗ рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ рддреЗрдЬреА рд╕реЗ рд╡реГрджреНрдзрд┐ рджреЗрдЦ рд╕рдХреЗрдВред

рдпрд╣ рднреА рдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рдЕрдВрддрд░ рдорд┐рд▓реЗрдЧрд╛ред рдореИрдВрдиреЗ 15% рдкреВрд░реНрдг рдЬреАрдд рджреЗрдЦреА рд╣реИ рд▓реЗрдХрд┐рди рдпрд╣ рд╕рдВрджрд┐рдЧреНрдз рд╣реИ рдЕрдЧрд░ рдпрд╣ рдкрд╣рдЪрд╛рдирдиреЗ рдпреЛрдЧреНрдп рд╣реИред

рдореИрдВ рджреЗрдЦ рд╕рдХрддрд╛ рдерд╛ рдХрд┐ "рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реЗрдЯрд┐рдВрдЧ" рдЗрдВрд╕реНрдЯреЙрд▓ рдкрд░ рдкреИрдХреЗрдЬ рдХреЛ рдкреИрдЪ рдХрд░ рд░рд╣рд╛ рд╣реИред рдЯрд╛рдЗрдкрд┐рдВрдЧ рдХреЗ рдХрдИ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЛ рдмрдирд╛рдП рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдмреИрдВрдбрд╡рд┐рдбреНрде рдирд╣реАрдВ рд╣реИред

@ eps1lon рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореЗрд░рд╛ рдкреНрд░рд╢реНрди рдЕрд╕реНрдкрд╖реНрдЯ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ CSSProperties рдареАрдХ рд╣реИ (рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЬрд╛рд╣рд┐рд░ рд╣реИ, рдЕрдЧрд░ рдпрд╣ рдЫреЛрдЯрд╛ рд╣реЛрддрд╛ рддреЛ рдпрд╣ рддреЗрдЬрд╝ рд╣реЛрддрд╛) - рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЙрдореНрдореАрдж рдХрд░ рд░рд╣рд╛ рдерд╛ рдХрд┐ https://github.com/mui-org рдореЗрдВ рдЙрдкрдкреНрд░рдХрд╛рд░реЛрдВ рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрдЧрд╣ рд╣реЛ рд╕рдХрддреА рд╣реИ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреЛ any рдмрджрд▓рддреЗ рд╣реИрдВ рддреЛ рдХреНрдпрд╛ рдЖрдкрдХреЛ рдХрдо рдкреВрд░реНрдгрддрд╛рдПрдБ рдкреНрд░рд╛рдкреНрдд рд╣реЛрдВрдЧреА?

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рдореЗрд░реЗ рдмреЙрдХреНрд╕ рдкрд░, рдпрд╣ docs рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ 15% рддреЗрдЬ (29.7s рд╕реЗ 25.5s рддрдХ) рд╕рдВрдХрд▓рд┐рдд рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд╕рдВрдкрд╛рджрди рдЕрдиреБрднрд╡ рдкрд░ рдкреНрд░рднрд╛рд╡ рдХрд╛ рдкрддрд╛ рдирд╣реАрдВ рд╣реИред
2 рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдПрдХ рдмрд╛рд░ рдЬрдм рдЖрдк рдкреНрд░рдХрд╛рд░ рдХреЗ рдкреБрдирд░рд╛рд╡рд░реНрддреА рднрд╛рдЧ рдореЗрдВ рддрд╣ рдХрд░рдирд╛ рдЫреЛрдбрд╝ рджреЗрддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдХреЗрд╡рд▓ BaseCreateCSSProperties рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдХрд┐рд╕реА рднреА рдЕрдиреНрдп рд╕рдВрдкрддреНрддрд┐ рдореЗрдВ any рдЯрд╛рдЗрдк рд╣реЛрдЧрд╛ (рдпрд╛рдиреА рдЖрдкрдХреЛ рд░рдЦрдирд╛ рд╣реЛрдЧрд╛ CSS рдЧреБрдгреЛрдВ рдХреЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкреНрд░рдХрд╛рд░)ред
рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ 3: рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ 2 рдЕрддрд┐рд░рд┐рдХреНрдд рд╕рдВрдкрддреНрддрд┐ рдХреА рдЬрд╛рдБрдЪ рдХреЗ рдХрд╛рд░рдг рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ (рдЕрд░реНрдерд╛рдд рд╡рд╕реНрддреБ рд╢рд╛рдмреНрджрд┐рдХ рдореЗрдВ рдордирдорд╛рдиреА рд╕рдВрдкрддреНрддрд┐ рдХреЗ рдирд╛рдореЛрдВ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рд╣реИ)ред

рдкреВрд░реНрдгрддрд╛ рдмрдирд╛рдо рдкреНрд░рдХрд╛рд░ рдХреА рдЬрд╛рдБрдЪ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЖрдкрдХреА рдмрд╛рдд рдмрд╣реБрдд рджрд┐рд▓рдЪрд╕реНрдк рдереА рдХреНрдпреЛрдВрдХрд┐ рдореЗрд░реА рдПрдХ рдкрд░рд┐рдХрд▓реНрдкрдирд╛ рдереА рдХрд┐ рдХреБрдЫ рдкреНрд░рдХрд╛рд░ рдХреЗ рд▓реЗрдЦрдХ рдРрд╕рд╛ рдорд╣рд╕реВрд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред @DanielRosenwasser рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдордиреЗ "a" | "b" | string рдкреИрдЯрд░реНрди рдХреЛ рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдРрд╕рд╛ рдХреБрдЫ рдХрд░рдиреЗ рдкрд░ рдзреНрдпрд╛рди рджрд┐рдпрд╛ - рдХреНрдпрд╛ рд╡рд╣ рдХрд╣реАрдВ рднреА рдЧрдпрд╛?

рдпрд╣ рднреА рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ styled-components рдореЗрдВ (рд╣рдорд╛рд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ) рдмрд╛рд░реАрдХреА рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдЪреЗрдХрд░ рдкреНрд░рджрд░реНрд╢рди рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реИрдВред

рдкреНрд░рдХрд╛рд░ рдХреЛ рдЕрдзрд┐рдХ рд╕рдЯреАрдХ рд░реВрдк рд╕реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ, рдореИрдВрдиреЗ https://github.com/microsoft/TypeScript/issues/36782 рджрд╛рдпрд░ рдХрд┐рдпрд╛ рд╣реИ

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ emotion рдПрдХ рд╣реА рдирд╛рд╡ рдореЗрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рдореИрдВрдиреЗ рдЖрдЬ рдЕрдкрдиреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдордЯреЗрд░рд┐рдпрд▓ UI ( 4.9.4 ) рдЬреЛрдбрд╝рдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛ рд╣реИ, рдФрд░ рдордВрджреА рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрддрдиреА рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдореИрдВ рдЗрд╕реЗ рдЕрдкрдиреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рднреА рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред рдмрд╕ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдЬреЛрдбрд╝рд╛ <Slider/> , рдШрдЯрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрдиреБрдХреВрд▓рд┐рдд withStyles() ред

рд╣рдо рдЕрдкрдиреЗ рдЖрдИрдбреАрдИ рдореЗрдВ рддрддреНрдХрд╛рд▓ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдлреАрдбрдмреИрдХ рд╕реЗ рдЬрд╛рдиреЗ рдХреА рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдЬреЛ рдХрдИ рдмрд╛рд░ 5-10 рд╕реЗрдХрдВрдб рдХреА рддрд░рд╣ рдорд╣рд╕реВрд╕ рд╣реЛрддрд╛ рд╣реИ (рдореЗрд░реЗ рдХреЛрдб рдХреЗ рдХреБрдЫ рд╣рд┐рд╕реНрд╕реЛрдВ рдХреЗ рд▓рд┐рдП рдЬреЛ рдЕрдм рд╕рд╛рдордЧреНрд░реА рдпреВрдЖрдИ рдХреЗ рд╕рд╛рде рднреА рдмрд╛рддрдЪреАрдд рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВ - рдпрд╣ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдПрдХ рдкреВрд░реНрдг рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдордВрджреА рд╣реИ рдЬреЛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдШрдЯрдХ)ред рдЗрди рдкреНрд░рдХрд╛рд░реЛрдВ (рдпрд╛ рд╣рд╛рдБ, рдЕрддреНрдпрдзрд┐рдХ рдЬрдЯрд┐рд▓) рдХреЗ рд╕рд╛рде рдХреБрдЫ рдЧрд▓рдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ @amcasey рдХреБрдЫ рдЕрдЪреНрдЫреА рдЬрд╛рдВрдЪ рдХрд░ рд░рд╣рд╛ рд╣реИ - рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдЖрдк рдЗрд╕рдХреА рддрд╣ рддрдХ рдкрд╣реБрдВрдЪ рд╕рдХрддреЗ рд╣реИрдВ!

рдПрдХ рддрд░реАрдХрд╛ рдЦреЛрдЬрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдореИрдВ рдХрдо рд╕реЗ рдХрдо рд╕рднреА рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рд╛рдордЧреНрд░реА рдХреЛ @material-ui рд▓рд┐рдП рдЕрднреА рдХреЗ рд▓рд┐рдП рдмрд╛рд╣рд░ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ (рдореВрд▓ рд░реВрдк рд╕реЗ рд╕рдВрдкреВрд░реНрдг рдореЙрдбреНрдпреВрд▓ any ) - рд▓реЗрдХрд┐рди рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЗрддрдирд╛ рдЖрд╕рд╛рди рдирд╣реАрдВ рд▓рдЧрддрд╛ рд╣реИред

@lostpebble рдХреНрдпрд╛ рд╕реНрд▓рд╛рдЗрдбрд░ рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП withStyles рдЕрд▓рд╛рд╡рд╛ рдХреБрдЫ рдФрд░ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдРрд╕рд╛ рд╣реА рд╣реЛрддрд╛ рд╣реИ, CSS рдореЙрдбреНрдпреВрд▓ рдХрд╣реЗрдВ?

@lostpebble рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕реЗрдЯ рдХреЛ рдмрд╛рд╣рд░ рдХрд░рдиреЗ рдХрд╛ рд╕рдорд░реНрдерд┐рдд рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИред рдпрджрд┐ рдЖрдк рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдкреНрд░рдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдмрд╛рдд рдкрде рдореИрдкрд┐рдВрдЧ рд╣реЛрдЧреАред рдЖрдк "@material-ui/*": ["simplemui"] рдЬреИрд╕реЗ рдкрде рдореИрдкрд┐рдВрдЧ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдлрд┐рд░ simplemui.d.ts рдпреБрдХреНрдд рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ

declare const x: any;
export = x;

рдпрд╣ рдкреНрд░рднрд╛рд╡реА рд░реВрдк рд╕реЗ рд╕рднреА рд╕рд╛рдордЧреНрд░реА-рдпреВрдЖрдИ рдкреНрд░рдХрд╛рд░ any ред рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдПрдХ рд╣реИрдХ рд╣реИ рдФрд░ рдРрд╕рд╛ рдХреБрдЫ рдирд╣реАрдВ рд╣реИ рдЬрд┐рд╕рдХреА рдореИрдВ рд╕рд┐рдлрд╛рд░рд┐рд╢ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдЖрдкрдХреЗ рд╕рдВрдкрд╛рджрди рдЕрдиреБрднрд╡ рдХреЛ рдЕрдирдмреНрд▓реЙрдХ рдХрд░ рд╕рдХрддрд╛ рд╣реИред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдордиреЗ рдХреБрдЫ рдЕрдЪреНрдЫреЗ рд╕реБрдзрд╛рд░ рдХрд┐рдП рд╣реИрдВ (рдХрд╣реАрдВ-рдХрд╣реАрдВ 30% рдХреНрд╖реЗрддреНрд░ рдореЗрдВ) рд▓реЗрдХрд┐рди рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЕрднреА рд╣рдо рдЯрд╛рдЗрдкрд┐рдВрдЧ рдХреЛ рдХрдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдЗрд╕рдХреЗ рд▓рд┐рдП рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдареЛрд╕ рдкреНрд░рд╕реНрддрд╛рд╡реЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬреИрд╕реЗ рдХрд┐ рдЯрд╛рдЗрдк рдЪреЗрдХрд░ рджреНрд╡рд╛рд░рд╛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд┐рдП рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдк рдХрд┐рд╕ рдЧрд▓рдд рдХреЛрдб рдХреЗ рд╕рд╛рде рдареАрдХ рд╣реЛрдВрдЧреЗред рдлрд┐рд░ рд╣рдореЗрдВ рдмреЗрдВрдЪрдорд╛рд░реНрдХ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рджреЗрдЦрдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рд╕рд╛рд░реНрдердХ рд╕реЗрдВрдз рд▓рдЧрд╛рддрд╛ рд╣реИред

рдЖрдкрдХреЛ рдпрд╣ рд╕рдордЭрдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдЬрд╛рдирдмреВрдЭрдХрд░ рд╢реБрд░реВ рдХрд┐рдП рдЧрдП рдкреНрд░рддрд┐рдЧрдорди рдЕрдиреБрд░рдХреНрд╖рдХреЛрдВ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдХрд╛рдо рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рд╣рдореЗрдВ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдЙрдкрднреЛрдХреНрддрд╛рдУрдВ рдХреЛ рдпрд╣ рд╕рдордЭрд╛рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИ рдФрд░ рдХреБрд▓ рдорд┐рд▓рд╛рдХрд░ рдпрд╣ рдХрд╛рдлреА рддрдирд╛рд╡рдкреВрд░реНрдг рд╣реИред

рддреЛ рдЗрд╕ рд╕рдордп рдореЗрд░реЗ рд▓рд┐рдП рдпрд╣ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдирд╣реАрдВ рд╣реИ рдЬрдм рддрдХ рдХрд┐ рдХрд┐рд╕реА рдХреЗ рдкрд╛рд╕ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдпреЛрдЧреНрдп рдмреБрджреНрдзрд┐ рди рд╣реЛред рдирд╣реАрдВ рддреЛ рдореБрдЭреЗ рдмрд╣реБрдд рдХрдо рд╕рдордп рдореЗрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╕рдордп рджреЗрдирд╛ рд╣реЛрдЧрд╛ред

рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ makeStyles(theme => createStyles(...)) , Record<ClassKey, any> рд╕реЗ createStyles(...) рд▓рдЧрднрдЧ ~ рдЖрдзрд╛ ~ (рдореЗрд░реЗ рдХреЛрдб рдФрд░ рдХрдВрдкреНрдпреВрдЯрд░ рдореЗрдВ, рд▓рдЧрднрдЧ ~ 1200ms -> 750ms ~ 1400ms тЖТ 1100ms) encodedSemanticClassifications-full: elapsed time tsserver рд▓реЙрдЧ рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ (рдпрд╣ рдПрдХ рдорд╣рдВрдЧрд╛ рдХрд╛рдо рдирд╣реАрдВ рджрд┐рдЦрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╢рд╛рдпрдж рдЯрд╛рдЗрдк рдЪреЗрдХ рдкреВрд░рд╛ рд╣реЛрдиреЗ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд░рд╣рд╛ рд╣реИ)ред

export default function createStyles<ClassKey extends string, Props extends {}>(
  styles: StyleRules<Props, ClassKey>,
): Record<ClassKey, any>;

createStyles(...) рд╢реИрд▓реА рд╕рдВрд░рдЪрдирд╛ рдХреА рдЬрд╛рдВрдЪ рдХрд░рддрд╛ рд╣реИ рддрд╛рдХрд┐ рд╣рдо createStyles рдмрдирд╛рдо рд░рд┐рдЯрд░реНрди-рдЯрд╛рдЗрдк-рдСрдл-рдореИрд╕рд┐рд╡-рдпреВрдирд┐рдпрди рдХреЗ рддрд░реНрдХ-рдкреНрд░рдХрд╛рд░-рдХреЗ-рдмрдбрд╝реЗ рдкреИрдорд╛рдиреЗ рдкрд░ рд╕рдВрдШ рдХреЗ рд▓рд┐рдП рдЯрд╛рдЗрдк рдЪреЗрдХ рдХреЛ рдЫреЛрдбрд╝ рд╕рдХреЗрдВред

~(рдФрд░ рд╕рдВрдкреВрд░реНрдг рдореЗрдХ рд╕реНрдЯрд╛рдЗрд▓ рдХреЛрдб рдкрд░ рдЯрд┐рдкреНрдкрдгреА рдХрд░рддреЗ рд╣реБрдП: 650ms)~

@ypresto createStyles рдХреЗрд╡рд▓ const рдЕрднрд┐рдХрдерди рдХреЗ рдмрд┐рдирд╛ рдЯрд╛рдЗрдкрдкреНрд░рддрд┐ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдпрджрд┐ рдЖрдк рдЕрдкрдиреЗ рдХреЛрдбрдмреЗрд╕ (ts >= 3.4) рдореЗрдВ { display: 'block' as const } рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рддреЛ рдЙрд╕ createStyles рд╕реЗ рдЕрдзрд┐рдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред

@ eps1lon рд╣рдордиреЗ рдЙрд╕ рдкрд░ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдФрд░ docs рдореЗрдВ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рд▓реЗрдХрд┐рди рдкрд░рд┐рдгрд╛рдо рдЕрдкреНрд░рднрд╛рд╡реА рдереЗред

@ eps1lon const рдФрд░ createStyles рдмрд┐рдирд╛, IntelliSense рдЕрдм рд╕рдВрджрд░реНрдн-рдЬрд╛рдЧрд░реВрдХ рдЙрдореНрдореАрджрд╡рд╛рд░реЛрдВ рдХреЛ рдирд╣реАрдВ рджрд┐рдЦрд╛рддрд╛ рд╣реИ: рд░реЛ:

@ypresto рдЗрд╕реЗ рдЪрд╛рд╣рд┐рдПред рдХреНрдпрд╛ рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЛрдб рд╕реНрдирд┐рдкреЗрдЯ рд╣реИ?

@amcasey

рдмрд╛рд╣рд░реА рд╡рд╕реНрддреБ рдпрд╛ рд╕рдВрдкрддреНрддрд┐ рдореЗрдВ as const рдЬреЛрдбрд╝рдирд╛ рдкреНрд░рднрд╛рд╡реА рд░реВрдк рд╕реЗ рдЗрд╕реЗ рдорд╛рд░рддрд╛ рд╣реИред рдореИрдВ рдЗрд╕реЗ рд╣рд░ рд╕рдВрдкрддреНрддрд┐ рдкрд░ рдирд╣реАрдВ рд░рдЦрдирд╛ рдЪрд╛рд╣рддрд╛ред

const useStyles = makeStyles(theme => ({
  root: {
    // no IntelliSense
  }
} as const))

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ createStyles рдХреЗ рдмрд┐рдирд╛ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкреВрд░реНрдгрддрд╛ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХреА рдЫреЛрдЯреА рд╕реАрдорд╛ рд╣реИред

const useStyles = makeStyles(theme => ({
  root: {
    direction: '|', // no IntelliSense at | (works with createStyles)
    direction: | // IntelliSense works at |
  }
}))

@ypresto "рдЗрд╕реЗ рдорд╛рд░рддрд╛ рд╣реИ" рд╕реЗ, рдХреНрдпрд╛ рдЖрдкрдХрд╛ рдорддрд▓рдм рд╣реИ "рдпрд╣ рдЙрд╕реА рддрд░рд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдЬреИрд╕реЗ createStyles рдХрд┐рдпрд╛"?

рдЗрд╕реЗ рд╣рд░ рдЬрдЧрд╣ рд░рдЦрдирд╛ рдПрдХ рдЦрд┐рдВрдЪрд╛рд╡ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рд░ рдЬрдЧрд╣ createStyles рдбрд╛рд▓рдиреЗ рд╕реЗ рдЬреНрдпрд╛рджрд╛ рдХреЛрдИ рдЦреАрдВрдЪ рдирд╣реАрдВ рд╣реИред

@amacleay рдореЗрд░рд╛ рдорддрд▓рдм рдерд╛ kills IntelliSense : рдкреНрд░рд╛рд░реНрдердирд╛:ред

рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рдореИрдВ рдЖрдкрдХреА рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рд╕реЗ рдЪреВрдХ рдЧрдпрд╛ред рдореИрдВ рдЗрд╕реЗ рдПрдХ рд╢реЙрдЯ рджреВрдВрдЧрд╛ред

рдореБрдЭреЗ рдкрддрд╛ рдирд╣реАрдВ рдХреНрдпреЛрдВ, рд▓реЗрдХрд┐рди рдпрд╣ 1100ms тЖТ 750ms рджрд┐рд▓рдЪрд╕реНрдк рд╣реИ:

 export const DropArea: React.FC<CardProps & {
   active?: boolean
   description: string
   icon?: React.ReactNode
-}> = ({ active, description, icon, children, ...props }) => {
+}> = ({ children, ...props }) => {
   const classes = useStyles()
+  const active = false
+  const icon: React.ReactNode = null
+  const description = ''
   return (
     <Card {...props} className={clsx(classes.root)} variant="outlined">

FC рд╕реЗ CardProps & рдХреЛ рд╣рдЯрд╛рдирд╛ рд▓рдЧрднрдЧ рд╕рдорд╛рди рдкрд░рд┐рдгрд╛рдо рд╣реИред рд╢рд╛рдпрдж рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдХрд╛рд░реНрдбрдкреНрд░реЙрдкреНрд╕ рдкреЗрдкрд░рдкреНрд░реЙрдкреНрд╕ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдмрдбрд╝реЗ HTMLAttributes рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рддрд╛ рд╣реИред

рдЕрджреНрдпрддрди рдФрд░ рдорд╣рддреНрд╡рдкреВрд░реНрдг: рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдХрд╛рд░реНрдбрдкреНрд░реЙрдкреНрд╕ рдХреЛ HTMLAttributes<HTMLDivElement> рдмрджрд▓рдиреЗ рд╕реЗ рд╕рдордп рднреА рдХрдо рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ (рдорд╛рдкрд╛ рдирд╣реАрдВ рдЬрд╛рддрд╛)ред

рдЕрдВрдд рдореЗрдВ, рдореБрдЭреЗ рд╕рдмрд╕реЗ рдмрдбрд╝рд╛ рдорд┐рд▓рд╛, 750ms тЖТ 130ms:

рджреЛ рдЯрд╛рдЗрдкреЛрдЧреНрд░рд╛рдлреА рд╕реЗ style={...} рдирд┐рдХрд╛рд▓рд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред

-<Typography variant="subtitle2" component="div" noWrap style={{ width: '26ch' }}>...</Typography>
+<Typography variant="subtitle2" component="div" noWrap>...</Typography>
-<Typography variant="caption" component="div" noWrap style={{ width: '20ch' }}>...</Typography>
+<Typography variant="caption" component="div" noWrap>...</Typography>

рд▓реЗрдХрд┐рди рдХреНрдпреЛрдВ? <div> рдореЗрдВ рд╕рдорд╛рди рд╢реИрд▓реА рдЬреЛрдбрд╝рдиреЗ рд╕реЗ рдкреНрд░рджрд░реНрд╢рди рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рд╢рд╛рдпрдж OverridableComponent рдмрд╣реБрдд рдЬрдЯрд┐рд▓ рд╣реИ..?

(рдореИрдВ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ 3.8.3, @material-ui/core 4.9.1 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ)

AFAIK рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рд╕рд╛рдордЧреНрд░реА-рдпреВрдЖрдИ рдШрдЯрдХреЛрдВ рдкрд░ рд╕реНрдерд╛рдиреАрдп рд╢реИрд▓рд┐рдпреЛрдВ рдХреЛ рд╕рдВрднрд╛рд▓рддрд╛ рд╣реИ, рд╡рд╣ HTML рддрддреНрд╡реЛрдВ рдХреЗ рд▓рд┐рдП рд░рд┐рдПрдХреНрдЯ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рддрд░реАрдХреЗ рд╕реЗ рдЕрд▓рдЧ рд╣реИред

@embeddedt рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕реНрддрд░ рдореЗрдВ, рдпрд╣ React.CSSProperties рд╕рдорд╛рдзрд╛рди рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдХрд┐ div рдХреЗ рд╕реНрдЯрд╛рдЗрд▓ рдкреНрд░реЛрдк рдХреЗ рд╕рдорд╛рди рд╣реИред

@ypresto рдореИрдВ рд╕рд╣реА рдЦрдбрд╝рд╛ рд╣реВрдВред рдорд╛рдлрд╝ рдХрд░рдирд╛ред

рд╣рд╛рдп рджреЛрд╕реНрддреЛрдВ, рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ рдореБрджреНрджрд╛ рдЦреЛрд▓рдирд╛ рдЙрдЪрд┐рдд рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЗрд╕реЗ рдпрд╣рд╛рдВ рдкреЛрд╕реНрдЯ рдХрд░реВрдВрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдкреНрд░рдХрд╛рд░ рд╢реБрджреНрдзрддрд╛/рдкреНрд░рджрд░реНрд╢рди рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИред рдореБрдЭреЗ рдмрддрд╛рдПрдВ рдХрд┐ рдХреНрдпрд╛ рдореБрдЭреЗ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдХреЛрдИ рдореБрджреНрджрд╛ рдЦреЛрд▓рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдХрд╕реНрдЯрдо рдлрд╝реЙрдиреНрдЯ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП
Type 'string' is not assignable to type 'FontFaceFontDisplayProperty'

рдпрд╣ рдЕрдЬреАрдм рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ csstype 2.6.9 рдЯрд╛рдЗрдкрд┐рдВрдЧ рдорд╛рдиреНрдп рд▓рдЧрддреА рд╣реИ рдФрд░ рдЕрдиреНрдп рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ рдареАрдХ рд╣реИрдВ (MUI 4.9.5 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ)ред

const sourceSansPro = {
  fontFamily: "'Source Sans Pro'",
  fontStyle: "normal",
  fontDisplay: "swap", // won't work
  fontWeight: 400,
  src: `
    url('/static/fonts/Source_Sans_Pro/SourceSansPro-Regular.ttf') format("truetype")
  `
};

рдереАрдо рд╕рдВрдкрддреНрддрд┐:

  overrides: {
    MuiCssBaseline: {
      "@global": {
        "@font-face": [sourceSansPro]
      }
    }

рдкреНрд░рдХрд╛рд░ рд╣реИ type FontFaceFontDisplayProperty = "auto" | "block" | "fallback" | "optional" | "swap";

@ рдПрд░рд┐рдХ-рдмреНрдпреВрд░рд▓ рдпрд╣ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдкреНрд░рдХрд╛рд░ рдХреЛ рдЪреМрдбрд╝рд╛ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдПрдХ рдореБрджреНрджрд╛ рд╣реИред рдХреЛрд╢рд┐рд╢

- fontDisplay: "swap", // won't work
+ fontDisplay: "swap" as "swap",

рдзрдиреНрдпрд╡рд╛рдж рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдореИрдВрдиреЗ рдПрдХ рдирдИ рдЕрд╡рдзрд╛рд░рдгрд╛ "рдЯрд╛рдЗрдк рдЪреМрдбрд╝рд╛" рд╕реАрдЦрд╛ рд╣реИ :) рдпрд╣ рдЕрдЬреАрдм рд╣реИ рдХрд┐ fontStyle рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рд╣реИ, рдпрд╣ рдПрдХрдорд╛рддреНрд░ рд╕реАрдПрд╕рдПрд╕ рд╕рдВрдкрддреНрддрд┐ рдирд╣реАрдВ рд╣реИ рдЬрд┐рд╕реЗ рдПрдирдо рдХреЗ рд░реВрдк рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдкрд╣рд▓реА рдмрд╛рд░ рдореИрдВрдиреЗ рдЗрд╕реЗ рдорд╛рд░рд╛ .

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рдареАрдХ рд╣реИ рдореЗрд░рд╛ рдмреБрд░рд╛ рдпрд╣ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдкреНрд░рд▓реЗрдЦрд┐рдд рд╣реИ: https://material-ui.com/guides/typescript/#using -createstyles-to-defeat-type-widening

рдЕрдВрдд рдореЗрдВ, рдореБрдЭреЗ рд╕рдмрд╕реЗ рдмрдбрд╝рд╛ рдорд┐рд▓рд╛, 750ms тЖТ 130ms:

рджреЛ рдЯрд╛рдЗрдкреЛрдЧреНрд░рд╛рдлреА рд╕реЗ style={...} рдирд┐рдХрд╛рд▓рд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред

-<Typography variant="subtitle2" component="div" noWrap style={{ width: '26ch' }}>...</Typography>
+<Typography variant="subtitle2" component="div" noWrap>...</Typography>
-<Typography variant="caption" component="div" noWrap style={{ width: '20ch' }}>...</Typography>
+<Typography variant="caption" component="div" noWrap>...</Typography>

рд▓реЗрдХрд┐рди рдХреНрдпреЛрдВ? <div> рдореЗрдВ рд╕рдорд╛рди рд╢реИрд▓реА рдЬреЛрдбрд╝рдиреЗ рд╕реЗ рдкреНрд░рджрд░реНрд╢рди рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рд╢рд╛рдпрдж OverridableComponent рдмрд╣реБрдд рдЬрдЯрд┐рд▓ рд╣реИ..?

(рдореИрдВ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ 3.8.3, @material-ui/core 4.9.1 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ)

рдХреНрдпрд╛ рдЖрдкрдиреЗ рдЗрд╕реЗ рдмрд┐рд▓реНрдб рд╕рдордп рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╛рдпрд╛ рд╣реИ, рдпрд╛ рдЗрдВрдЯреЗрд▓рд┐рдЬреЗрдВрд╕ рдХреЗ рдЙрдкрдпреЛрдЧреА рд╣реЛрдиреЗ рдореЗрдВ рд▓рдЧрдиреЗ рд╡рд╛рд▓реЗ рд╕рдордп рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд┐рдпрд╛ рд╣реИ? рдореБрдЭреЗ рдмрд┐рд▓реНрдб рдЗрд╢реНрдпреВ (рд╕реНрдореГрддрд┐ рд╕реЗ рдмрд╛рд╣рд░) рдорд┐рд▓ рд░рд╣рд╛ рд╣реИ рдФрд░ рд╣рдорд╛рд░реЗ рдХреБрдЫ рдЯреАрдПрд╕ рдХреЛрдб рдореЗрдВ рдШрдЯрдХреЛрдВ рдкрд░ style={someStyle} рдХрд╛ рдПрдХ рдЯрди рд╕реЗрдЯ рд╣реИред рдЖрд╢реНрдЪрд░реНрдп рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рд╣рдорд╛рд░реЗ рдореБрджреНрджреЗ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИред

@ yatrix7 , рдЖрдо рддреМрд░ рдкрд░ рдмреЛрд▓рддреЗ рд╣реБрдП, рдореИрдВ рдЙрдореНрдореАрдж рдХрд░рддрд╛ рд╣реВрдВ рдХрд┐ рдпреЗ рд▓рдВрдмреЗ рдЪреЗрдХ рд╕рдордп рдмрд┐рд▓реНрдб рдФрд░ рд╕рдВрдкрд╛рджрдХ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╕рдордп рджреЛрдиреЛрдВ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░реЗрдВрдЧреЗред

рдореИрдВ рдЗрд╕ рд╕рдордп рдХреЛрдИ рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдБ? рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдкрд┐рдЫрд▓реЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рдЙрдиреНрдирдпрди рдореЗрдВ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреНрд░рдХрд╛рд░ рдХреА рдЬрд╛рдБрдЪ рдХреЗ рд╕рдордп рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рдХреБрдЫ рд╕реБрдзрд╛рд░ рд╣реБрдП рд╣реИрдВред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрд╣ рдЕрднреА рднреА рдзреАрдорд╛ рд╣реИред
рдЦреБрдж рдЗрд╕ рдкрд░ рдЧреМрд░ рдХрд░рдиреЗ рдХрд╛ рдорди рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред

рдЦреБрдж рдЗрд╕ рдкрд░ рдЧреМрд░ рдХрд░рдиреЗ рдХрд╛ рдорди рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред

рдпрд╣ рдХрдорд╛рд▓ рд╣реЛрдЧрд╛ред рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрд░рд╡рд╛рдИ рдпреЛрдЧреНрдп рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдирд╣реАрдВ рд╣реИред рддреЛ рдмрд╛рдзрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рднреА рд╕рдВрдХреЗрддрдХ рдХреА рд╕рд░рд╛рд╣рдирд╛ рдХреА рдЬрд╛рдПрдЧреАред

рдЬрд╛рдВрдЪ рдореЗрдВ рдорджрдж рдХреЗ рд▓рд┐рдП рдЕрднреА рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдмреЗрдВрдЪрдорд╛рд░реНрдХрд┐рдВрдЧ рдЬреЛрдбрд╝реЗ рдЧрдП рд╣реИрдВ: https://github.com/mui-org/material-ui/pull/22110

@FabianKielmann рдЯреАрдПрд╕ рдХреЗ рдЕрдВрдд рдореЗрдВ, рдореИрдВ рдкреВрд░реНрдг рдЬрд╛рдВрдЪ рдЙрдкрдХрд░рдг рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдЬреЛ рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдЬрд▓реНрдж рд╣реА рдкрд░рд┐рдкрдХреНрд╡ рд╣реЛ рдЬрд╛рдПрдЧрд╛, рд╕рд╛рдордЧреНрд░реА-рдпреВрдЖрдИ рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрдЧрд╛ред

рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЗрд╕ рдкрд░ рдЦрд░реНрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд╕рдордп рд╣реИ, рддреЛ рдЖрдк https://github.com/microsoft/TypeScript/issues/38583 рдЬреИрд╕реЗ рдХреБрдЫ рднреА рдЖрдЬрд╝рдорд╛ рд╕рдХрддреЗ рд╣реИрдВ

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

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

newoga picture newoga  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

sys13 picture sys13  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

reflog picture reflog  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

ericraffin picture ericraffin  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

anthony-dandrea picture anthony-dandrea  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ