рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рдВрд╕реНрдХрд░рдг: 3.2.0-dev.20181004
рдЦреЛрдЬ рд╢рдмреНрдж:
disableJsDiagnostics
JSX
рдХреЛрдб рдареАрдХ рдХрд░реЗрдВ
рдЗрд╕ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░реЗрдВ
рд╕рднреА рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢реЛрдВ рдореЗрдВ '@ ts-ign' рдЬреЛрдбрд╝реЗрдВ
рдХреЛрдб
// MyComponent.jsx
// @ts-check
import React from "react";
class MyComponent extends React.Component {
render() {
return (
<div>
// @ts-ignore
{doesNotExist}
</div>
);
}
}
export default MyComponent;
Ignore this error message
рдпрд╛ Add '@ts-ignore' to all error messages
рдХреЛрдб рдлрд┐рдХреНрд╕ рдХрд░рдирд╛ // @ts-ignore
рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬреЛ рд╕рдВрдХрд▓рдХ рдХреЛ рд╕рдВрддреБрд╖реНрдЯ рдХрд░рддрд╛ рд╣реИред
рдкрд░рдВрддреБ,
<div>
// @ts-ignore
{doesNotExist}
</div>
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ // @ts-ignore
рдкреНрд░рджрд╛рди рдХрд░реЗрдЧрд╛ред
рдЕрдкреЗрдХреНрд╖рд┐рддреН рд╡реНрдпрд╡рд╣рд╛рд░:
рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ {/* @ts-ignore */}
рдпрд╛ {/* // @ts-ignore */}
рдХреЛ рд╡реИрдз рдЕрдирджреЗрдЦрд╛ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдиреНрдпрддрд╛ рдкреНрд░рд╛рдкреНрдд рдирд╣реАрдВ рд╣реИред
рддреЛ, рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдореИрдВ рд╕рд╛рде рдЖ рд╕рдХрддрд╛ рд╣реИ
<div>
{/*
// @ts-ignore */}
{doesNotExist}
</div>
рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╡реНрдпрд╡рд╣рд╛рд░:
// MyComponent.jsx
// @ts-check
import React from 'react';
class MyComponent extends React.Component {
render() {
return (
<div>
// @ts-ignore
{doesNotExist}
</div>
);
}
}
export default MyComponent;
рдЬрд╣рд╛рдВ // @ts-ignore
рдЧрд▓рддреА рд╕реЗ рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ:
рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ: рдЬрдм рддрдХ рд╣рдо рдирдП рджрдорди рдлреЙрд░реНрдо (рдпрд╛рдиреА рдЗрдирд▓рд╛рдЗрди) рдирд╣реАрдВ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ, рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХрдорд╛рддреНрд░ рдлрд┐рдХреНрд╕ рдХреНрд╡рд┐рдХрдлрд┐рдХреНрд╕ рдХреЛ рдЕрдХреНрд╖рдо рдХрд░ рд░рд╣рд╛ рд╣реИ рдЬрдм рдПрдХ рд╡реИрдз рджрдорди рд╕реНрдерд┐рддрд┐ рдЙрддреНрдкрдиреНрди рдирд╣реАрдВ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИред
(рдЬрдм рддрдХ рд╣рдо рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдРрд╕рд╛ рдХреБрдЫ рдирд╣реАрдВ рд╕реЛрдЪрддреЗ рд╣реИрдВ
{/*
// @ts-ignore */}
рдареАрдХ рд╣реИ?)
рдирдП рджрдорди рд░реВрдкреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рднрдпрд╛рдирдХ рд╣реЛрдЧрд╛, рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рд╡рд┐рд╢рд┐рд╖реНрдЯ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рд▓рдХреНрд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рднреАред рд▓реЗрдХрд┐рди, рдЗрд╕рдХреЗ рдЕрднрд╛рд╡ рдореЗрдВ, рд╣рдо рдЙрд╕ рдЕрдЬреАрдм рдХрдореЗрдВрдЯ рдлреЙрд░реНрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ рдХреНрдпреЛрдВрдХрд┐ рд╣рдореЗрдВ JSX рдХрдВрд╕реНрдЯреНрд░рдХреНрд╢рдВрд╕ рдореЗрдВ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдирдЬрд░рдЕрдВрджрд╛рдЬ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпрд╣ рд╕реБрдВрджрд░ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдХреЗрд╡рд▓ рдПрдХ рдЪреАрдЬ рд╣реИ рдЬреЛ рдХрд╛рдо рдХрд░рддреА рд╣реИред рддреЛ, рдлрд┐рдХреНрд╕ рдпрд╛ рддреЛ (1) рдЗрд╕реЗ рдЗрд╕ рд░реВрдк рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдпрд╛ (2) рдЗрд╕реЗ рдмрд┐рд▓реНрдХреБрд▓ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ (рдЗрд╕рд▓рд┐рдП рдпрд╣ рд░реЗрдВрдбрд░рд┐рдВрдЧ рд╕рдорд╛рдкреНрдд рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ)ред рдореБрдЭреЗ рдкрд╕рдВрдж рд╣реИ (1) рднрд▓реЗ рд╣реА рдпрд╣ рдмрд╣реБрдд рд╕реБрдВрджрд░ рдирд╣реАрдВ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рд░реВрдк рд╕реЗ рд╕рд╣реА рд╣реИ - рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЕрдЧрд░ рдирд┐рдпрдо JSX рдШрдЯрдХ рдХреЗ рд╢рд░реАрд░ рдореЗрдВ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдЫреЛрдбрд╝рдХрд░ рд╕рдм рдХреБрдЫ рдЕрдирджреЗрдЦрд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдореЗрдВ рдЕрдЬреАрдм-рд╕реА рджрд┐рдЦрдиреЗ рд╡рд╛рд▓реА рдЕрдирджреЗрдЦреА рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдорд┐рд╕рд╛рд▓ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП,
const s = `
Hello ${doesnotexist}`;
рдХреЗ рд░реВрдк рдореЗрдВ рдареАрдХ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдирдЬрд░рдЕрдВрджрд╛рдЬ рдХрд░ рджрд┐рдпрд╛
const s = `
Hello ${
// @ts-ignore
doesnotexist}`;
{/* // @ts-ignore */}
рдХрдорд╛рд▓ ЁЯМ╣
рдХреНрдпрд╛ рдХреЛрдИ рдФрд░ рдкреИрдЯрд░реНрди рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрдиреНрдп рдХрд░ рд░рд╣реЗ рд╣реИрдВ?
рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрдЬреАрдм рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рд╣реИ
{/*
// @ts-ignore */}
рдКрдкрд░ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред
рдЖрдЬ рд▓реЛрдЧ TSX
рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рдЕрдВрджрд░ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдХреИрд╕реЗ рдЕрдирджреЗрдЦрд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ? рдореИрдВрдиреЗ рдПрдХ рдЯрди рдХрд╛ рд╢реЛрдз рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рдПрдХ рднреА рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рдЦреЛрдЬ рдкрд╛рдпрд╛ рд╣реИ рдЬреЛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реЛред рдХреБрдЫ рдмрдпрд╛рди рдХреЛ рдирдЬрд░рдЕрдВрджрд╛рдЬ рди рдХрд░ рдкрд╛рдирд╛ рдПрдХ рдмрд╣реБрдд рдмрдбрд╝реА рдЪреБрдиреМрддреА рд╣реИред
рдПрдХ рдФрд░ (рд╡рд┐рд╖рдо рджрд┐рдЦрдиреЗ рд╡рд╛рд▓реА) рднрд┐рдиреНрдирддрд╛ рдЬреЛ рдХрд╛рдо рдХрд░рддреА рд╣реИ:
<
// @ts-ignore
SomeComponent />
(рдЬрдм рддрдХ рд╣рдо рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдРрд╕рд╛ рдХреБрдЫ рдирд╣реАрдВ рд╕реЛрдЪрддреЗ рд╣реИрдВ
{/* // @ts-ignore */}
рдареАрдХ рд╣реИ?)
рддреБрдо рдХрд┐рддрдиреЗ рд╣реЛрд╢рд┐рдпрд╛рд░ рд╣реЛ !!!
рдКрдкрд░ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред
рд▓реЛрдЧ рдЖрдЬ
TSX
рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рдЕрдВрджрд░ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдХреИрд╕реЗ рдЕрдирджреЗрдЦрд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ? рдореИрдВрдиреЗ рдПрдХ рдЯрди рдХрд╛ рд╢реЛрдз рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рдПрдХ рднреА рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рдЦреЛрдЬ рдкрд╛рдпрд╛ рд╣реИ рдЬреЛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реЛред рдХреБрдЫ рдмрдпрд╛рди рдХреЛ рдирдЬрд░рдЕрдВрджрд╛рдЬ рди рдХрд░ рдкрд╛рдирд╛ рдПрдХ рдмрд╣реБрдд рдмрдбрд╝реА рдЪреБрдиреМрддреА рд╣реИред
рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ 3.6.2 рдХреЗ рд╕рд╛рде .tsx
рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ
(рдЬрдм рддрдХ рд╣рдо рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдРрд╕рд╛ рдХреБрдЫ рдирд╣реАрдВ рд╕реЛрдЪрддреЗ рд╣реИрдВ
{/* // @ts-ignore */}
рдареАрдХ рд╣реИ?)
рд╣рд╛рдБ, рдЙрди рд╕рднреА рдирд┐рдпрдореЛрдВ рдХреЗ рдирд┐рдпрдо рдЙрд╕ рд╡рд╛рдХреНрдп рд░рдЪрдирд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╣реБрдд рдЦреБрд╢ рд╣реЛрдВрдЧреЗ
рдЕрдм рдРрд╕рд╛ рдХрд░рдирд╛: neutral_face:
< // eslint-disable-line react/jsx-tag-spacing
// @ts-ignore
Component/>
рдореИрдВ рдкреНрд░реАрдЯрд┐рдпрд░ рдХреЗ рд╕рд╛рде рд╕рдВрдпреЛрдЬрди рдХреЗ рд░реВрдк рдореЗрдВ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ 3.7 рдореЗрдВ рдФрд░ рднреА рдЕрдзрд┐рдХ рдордЬреЗрджрд╛рд░ рдерд╛, рдХреНрдпреЛрдВрдХрд┐ рдкреНрд░реЗрдЯреНрд░рд┐рдпрд░ рдПрдХ рдЕрд▓рдЧ рд▓рд╛рдЗрди рдкрд░ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рд░рдЦрддрд╛ рд╣реИ, рдФрд░ рдЕрдм @ ts-ign рдХреЛ рд╕рдВрдкрддреНрддрд┐ рд╕реЗ рдкрд╣рд▓реЗ рддреИрдирд╛рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЯреИрдЧ рдХреА рд╢реБрд░реБрдЖрдд рдирд╣реАрдВред
рдореЗрд░реЗ рдкрд╛рд╕ рдпрд╣рд╛рдВ рдХрд╛ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рд╣реИ:
{/* lol https://github.com/Microsoft/TypeScript/issues/27552#issuecomment-495830020
// @ts-ignore */ /* prettier-ignore */}
<MyComponent foo={{
a: 'prop',
with: 'lots a',
big: 'object',
that: 'forces',
prettier: 'to wrap',
}}
/>
рдкрд╣рд▓реЗ рд╕реЗ:
{/* lol https://github.com/Microsoft/TypeScript/issues/27552#issuecomment-495830020
// @ts-ignore */}
<MyComponent
foo={{
a: 'prop',
with: 'lots a',
big: 'object',
that: 'forces',
prettier: 'to wrap',
}}
/>
рдХреЛрдИ рд╡рд┐рдЪрд╛рд░ рдирд╣реАрдВ рдЕрдЧрд░ рдкреНрд░реЗрдЯрд┐рдпрд░ рдЕрддреНрдпрдзрд┐рдХ рдкреНрд░рд╕рд╛рд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднреА рд╢рд┐рдХрд╛рдпрдд рдХрд░реЗрдЧрд╛, рд▓реЗрдХрд┐рди
<MyComponent
{...{}/* lol https://github.com/Microsoft/TypeScript/issues/27552#issuecomment-495830020
// @ts-ignore */}
foo={{
a: 'prop',
with: 'lots a',
big: 'object',
that: 'forces',
prettier: 'to wrap',
}}
/>
рдХрд╛рдо рднреА рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП? рдХреБрдЫ рдмрд┐рдВрджреБ рдкрд░ рдкреВрд░реНрд╡-рдЙрдкреЗрдХреНрд╖рд╛ рдХреЗрд╡рд▓ рдмреЗрд╣рддрд░ рд╡рд┐рдХрд▓реНрдк рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ред Jsx рдХреЗ рдЕрдВрджрд░ рдЯрд┐рдкреНрдкрдгреА рд╕реНрдерд╛рдиреЛрдВ рдХреЗ рд▓рд┐рдП рдмрд╕ рдХрдИ рд╡рд┐рдХрд▓реНрдк рдирд╣реАрдВ рд╣реИрдВред
рдпрд╣ рдмрдВрдж рдХреНрдпреЛрдВ рд╣реИ? рдХреНрдпрд╛ рд╣рдо рд╕рд┐рд░реНрдл рдмрджрд╕реВрд░рдд рд╕рдорд╛рдзрд╛рди рдХреЗ рд▓рд┐рдП рдкреНрд░рддрд┐рдмрджреНрдз рдереЗ?
рдХреГрдкрдпрд╛ рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓реЗрдВ ...
рдХреНрдпрд╛ рд╣рдо рд╕рд┐рд░реНрдл рдмрджрд╕реВрд░рдд рд╕рдорд╛рдзрд╛рди рдХреЗ рд▓рд┐рдП рдкреНрд░рддрд┐рдмрджреНрдз рдереЗ?
рд╣рд╛рдВред рдлреБрд░реНрддреАрд▓рд╛ рдЕрдм рдмрджрд╕реВрд░рдд рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред "рдкреВрд░реНрд╡рд╛рдЧреНрд░рд╣" рдПрдХ рдЪрд┐рдВрддрд╛ рдХрд╛ рд╡рд┐рд╖рдп рдирд╣реАрдВ рд╣реИ, рдЬрдм рдЗрд╕реЗ рджрдмрд╛рдиреЗ рдХреА рдмрд╛рдд рдЖрддреА рд╣реИ, рдЬреЛ рдХрд┐ рд╕рднреА рдЕрдзрд┐рдХрд╛рд░реЛрдВ рд╕реЗ, рдЕрд╕рд╛рдзрд╛рд░рдг рдШрдЯрдирд╛рдУрдВ рд╕реЗ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рд╣рдо рдмрд╣реБрдд рд╕реЗ рд▓реЙрдХ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдЬреЛ jsx рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрд╣реА рд╣реИред
рд╣рдо рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рднрдпрдВрдХрд░ рд╕рдорд╛рдзрд╛рди рдХреЗ рд▓рд┐рдП рдкреНрд░рддрд┐рдмрджреНрдз рд╣реИрдВ ... рд▓реЗрдХрд┐рди рд╢рд╛рдпрдж рдирд╣реАрдВред
рдХреНрдпрд╛ рд╣рдо рдЗрд╕реЗ рдЦреБрд▓рд╛ рд░рдЦрдиреЗ рдкрд░ рд╡реЛрдЯ / рд╕рд╣рдорддрд┐ рджреЗ рд╕рдХрддреЗ рд╣реИрдВ? рдореИрдВ рдХреБрдЫ рдЦрд╛рд▓реА рд╕рдордп рдореЗрдВ рдЗрд╕рд╕реЗ рдирд┐рдкрдЯрдирд╛ рдкрд╕рдВрдж рдХрд░реВрдВрдЧрд╛ рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдореМрдЬреВрджрд╛ рд╕рдорд╛рдзрд╛рди рдкрд╕рдВрджреАрджрд╛ рд╡рд┐рдХрд▓реНрдк рд╣реИ рддреЛ рд╕рдордп рдмрд░реНрдмрд╛рдж рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдорд╛рдирд╛ред рдореИрдВ рд╡рд░реНрддрдорд╛рди рдореЗрдВ fugly рд╕рдорд╛рдзрд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдХреНрдпреЛрдВрдХрд┐ рдПрдХ 3 рдкрд╛рд░реНрдЯреА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдЬреЛ рдореИрдВ рднрд░реЛрд╕рд╛ рдХрд░рддрд╛ рд╣реВрдВ рдХрд┐ рдЙрдирдХреЗ рдирд╡реАрдирддрдо рдХреЛрдб рдореЗрдВ рдЧрд▓рдд рдЯрд╛рдЗрдкрд┐рдВрдЧ рд╣реИред рдлреБрдЧрд▓реА рд╕рдорд╛рдзрд╛рди рдЕрднреА рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрджрд┐ рд╕рдВрднрд╡ рд╣реЛ рддреЛ рд╡рди-рд▓рд╛рдЗрдирд░ рд░рдЦрдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред
рдЕрдлрд╕реЛрд╕ рдХреА рдмрд╛рдд рд╣реИ рдХрд┐ jsx рдореЗрдВ рдЯрд┐рдкреНрдкрдгреА рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рдФрд░ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИред рдпрд╣ {}
рднреАрддрд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
рдХреНрдпрд╛ рдЗрд╕рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХреЛ рдЯреНрд░реИрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рдореБрджреНрджрд╛ рд╣реИ?
{/* @ts-ignore */}
{whatever}
рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдЬреИрд╕реЗ рд╣рдо рдЗрд╕реЗ рдЕрднреА рдЦреЛрд▓ рд░рд╣реЗ рд╣реИрдВ: https://github.com/microsoft/TypeScript/issues/37738
рдпрд╣рд╛рдВ PR: https://github.com/microsoft/TypeScript/pull/38228 ith
рдореИрдВ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рд╕реЛрдЪрддрд╛ рд╣реВрдВ
{/* @ts-ignore */}
{whatever}
рдЗрд╕рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдФрд░ рд╕рдмрд╕реЗ рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рд╕рдорд╛рдзрд╛рди рд╣реИред
рдСрдЯреЛ рд╕реНрд╡рд░реВрдкрдг рдЙрдкрдХрд░рдг (рдкреНрд░реЗрдЯрд┐рдпрд░, рдЖрджрд┐) рд╣реИрдХ рдХреЗ рдиреАрдЪреЗ рдЦрд░рд╛рдм рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред
рдзреНрдпрд╛рди рджреЗрдВ:
рдпрд╣ рд╕рдорд╛рдзрд╛рди рдареАрдХ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ
{/*
// @ts-ignore */}
рдЬрдмрдХрд┐ рдпрд╣
<
// @ts-ignore
SomeComponent />
рд╕реНрд╡рддрдГ-рд╕реНрд╡рд░реВрдкрд┐рдд рд╣реИ рдФрд░ рдЕрдорд╛рдиреНрдп рд╣реЛ рдЧрдпрд╛ рд╣реИ (рдХрдо рд╕реЗ рдХрдо рдореЗрд░реА рдкреНрд░реАрдЯрд┐рдпрд░ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдкрд░)
# 38228 рдХреА рд╕рдлрд▓рддрд╛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ 3.9 рдореЗрдВ рдЙрддрд░рд╛: рдЯреИрдбрд╛:
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ JSX рд╕рдорд╕реНрдпрд╛ рд╕реЗ рдЕрдзрд┐рдХ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕реЗ рджреЗрдЦреЗрдВ:
рдорд╛рди рд▓реЗрдВ рдХрд┐ рдореЗрд░реЗ рдкрд╛рд╕ рдпрд╣ рд╣реИ :
import * as React from 'react';
declare var SomeComponentFromLibrary: React.FC<{
children?: React.ReactElement
}>;
declare var MyComponent: React.FC<{
foo: string,
}>;
export default () => (
<SomeComponentFromLibrary>
{/* @ts-expect-error */}
<MyComponent />
</SomeComponentFromLibrary>
)
SomeComponentFromLibrary
рдореИрдВ рдмрджрд▓ рдирд╣реАрдВ рд╕рдХрддрд╛, рдФрд░ рдореИрдВ рдЙрд╕ рддреНрд░реБрдЯрд┐ рдХреЛ рджрдмрд╛ рджреЗрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдЬреЛ <MyComponent />
рдЙрддреНрдкрдиреНрди рд╣реЛрддреА рд╣реИред
рд╣рд╛рд▓рд╛рдВрдХрд┐, SomeComponentFromLibrary
рдХреЗ рдмрдЪреНрдЪреЛрдВ рдореЗрдВ рдПрдХ рдФрд░ рддрддреНрд╡ рдЬреЛрдбрд╝рдиреЗ рд╕реЗ рдЕрдм children?: React.ReactElement
рдкреНрд░рдХрд╛рд░ рдХреА рдмрд╛рдзрд╛ рдЯреВрдЯ рдЬрд╛рддреА рд╣реИ, рдПрдХ рдЕрдиреНрдп рдкреНрд░рдХрд╛рд░ рдХреА рддреНрд░реБрдЯрд┐ рдЙрддреНрдкрдиреНрди рд╣реЛрддреА рд╣реИред
рдХреНрдпрд╛ JSX рдореЗрдВ рдРрд╕реА рдЯрд┐рдкреНрдкрдгреА рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ рдЬреЛ рдХреЛрдб рдореЗрдВ рддрдмреНрджреАрд▓ рди рд╣реЛ?
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
(рдЬрдм рддрдХ рд╣рдо рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдРрд╕рд╛ рдХреБрдЫ рдирд╣реАрдВ рд╕реЛрдЪрддреЗ рд╣реИрдВ
рдареАрдХ рд╣реИ?)