Language-tools: рдЪрд░реНрдЪрд╛: рд╣рдо рдПрдХ рдШрдЯрдХ рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рдШрдЯрдирд╛рдУрдВ рдХреЛ рдХреИрд╕реЗ рдЯрд╛рдЗрдк рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 5 рдЕрдЧре░ 2020  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: sveltejs/language-tools

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

рдЕрднреА рдореИрдВ on:qoidfoqidjoiqsjd рдареАрдХ рдЯрд╛рдЗрдк рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред

рдлреНрд▓реЗрдХреНрд╕, рдЬрд┐рд╕рдХреЗ рдХрдВрдкрд╛рдЗрд▓рд░ рдиреЗ рдЗрд╕рдХреЗ рд▓рд┐рдП рдХрд╕реНрдЯрдо рдПрдиреЛрдЯреЗрд╢рди рдХрд╛ рднреА рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдерд╛: https://github.com/apache/flex-sdk/blob/master/frameworks/projects/mx/src/mx/core/Container.as#L97

рд╢рд╛рдпрдж рд╣рдорд╛рд░реЗ рдкрд╛рд╕ export type Events = {name: 'eventA', data: number} | ... рдЬреИрд╕рд╛ рдПрдХ рд╡рд┐рд╢реЗрд╖, рдЖрд░рдХреНрд╖рд┐рдд рд╕рдореНрдореЗрд▓рди рд╣реЛ рд╕рдХрддрд╛ рд╣реИ
TSDoc рдХреЛ рдЙрдкрднреЛрдХреНрддрд╛ рдкрдХреНрд╖ рдЯреВрд▓рдЯрд┐рдк рдкрд░ рд▓реЗ рдЬрд╛рдирд╛ рдХреЗрдХ рдкрд░ рдЖрдЗрд╕рд┐рдВрдЧ рд╣реЛрдЧрд╛ред

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

рдЕрдм рдЖрдк Svelte 3.25.0 рдореЗрдВ рдкреЗрд╢ рдХрд┐рдП рдЧрдП createEventDispatcher рдЯрд╛рдЗрдкрд┐рдВрдЧ рдХрд╛ рд▓рд╛рдн рдЙрдард╛ рд╕рдХрддреЗ рд╣реИрдВред рдпрджрд┐ рддреБрдо рдХрд░реЛ

const dispatch = createEventDispatcher<{foo: string; bar: boolean}>();

рдЖрдкрдХреЛ рдШрдЯрдХ рдХреЗ рднреАрддрд░ dispatch рдХреЗ рд▓рд┐рдП рдордЬрдмреВрдд рдЯрд╛рдЗрдкрд┐рдВрдЧ рдорд┐рд▓рддреА рд╣реИ, рдФрд░ рдпрджрд┐ рдЖрдк foo / bar рдИрд╡реЗрдВрдЯ рд╕реБрдирддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдордЬрдмреВрдд рдЯрд╛рдЗрдкрд┐рдВрдЧ рдорд┐рд▓реЗрдЧреА:

on:foo={e => ... // <- e is of type CustomEvent<string>

рдЕрдм рдЖрдкрдХреЛ рдИрд╡реЗрдВрдЯ рдХреЗ рд▓рд┐рдП рдмреЗрд╣рддрд░ рд╕реНрд╡рддрдГ рдкреВрд░реНрдгрддрд╛ рднреА рдкреНрд░рд╛рдкреНрдд рд╣реЛрдЧреАред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЖрдкрдХреЛ рдЕрднреА рднреА рдЕрдиреНрдп рдШрдЯрдирд╛рдУрдВ рдХреЛ рд╕реБрдирдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рд╣реИ, рдЗрд╕рд▓рд┐рдП "рдХреЗрд╡рд▓ createEventDispatcher рдорд╛рдзреНрдпрдо рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдШрдЯрдирд╛рдУрдВ рдХреЛ рд╕реБрдиреЗрдВ" рдХреЗ рдЕрд░реНрде рдореЗрдВ рд╕реБрд░рдХреНрд╖рд╛ рдЯрд╛рдЗрдк рдХрд░рдирд╛ рдЕрднреА рднреА ComponentEvents рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╣реА рд╕рдВрднрд╡ рд╣реИред рд▓реЗрдХрд┐рди рд╣рдо рдХреБрдЫ (рд╢рд╛рдпрдж рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЯреИрдЧ рд╡рд┐рд╢реЗрд╖рддрд╛) рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВ рдЬреЛ рдШрдЯрдирд╛рдУрдВ рдХреЛ рд╕рдЦреНрдд рдмрдирд╛ рджреЗрдЧрд╛ред

рд╕рдВрдмрдВрдзрд┐рдд рджрд╕реНрддрд╛рд╡реЗрдЬрд╝: https://github.com/sveltejs/language-tools/blob/master/docs/preprocessors/typescript.md#typing -component-events

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

рдЗрд╕реЗ рдЖрд╕рд╛рдиреА рд╕реЗ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд░рдиреЗ рдХрд╛ рдХрд╛рд░рдг рдпрд╣ рд╣реИ рдХрд┐ рд╕рднреА рд╕рдВрднрд╛рд╡рд┐рдд рдШрдЯрдирд╛рдУрдВ рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░рдирд╛ рдкреНрд░реЙрдкреНрд╕ рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░рдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рдХрдард┐рди рд╣реИред рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ рд╕реНрд╡рдд: рдкреВрд░реНрдгрддрд╛ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддреА рдХреНрдпреЛрдВрдХрд┐ рдпреЗ рд╕рд╣рд╛рд░рд╛ рдХреЗ рд▓рд┐рдП рд╣реИрдВред

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

рдПрдХ рдЖрд░рдХреНрд╖рд┐рдд рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╣реЛрдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдЖрдЧреЗ рдмрдврд╝рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИред рд╣рдордиреЗ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдкрд╣рд▓реЗ рдЬреЗрдиреЗрд░рд┐рдХ рдкреНрд░реЙрдкреНрд╕ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рд╕реЛрдЪрд╛ рд╣реИред рддреАрдиреЛрдВ рдЯрд╛рдЗрдк рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд░рдХреНрд╖рд┐рдд рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдирд╛рдо ComponentEvents , ComponentProps , ComponentSlots рдФрд░ ComponentDef ред

рд╕рдВрдмрдВрдзрд┐рдд #304

on:<event> рд╕рд╛рде рд╕реНрд╡рдд: рдкреВрд░реНрдгрддрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЕрд▓рдЧ рддрд░реАрдХреЗ рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХреНрдпреЛрдВрдХрд┐ рд╣реБрдб рдХреЗ рддрд╣рдд рд╣рдо рдЗрди рд╕реНрд╡рдд: рдкреВрд░реНрдгрддрд╛рдУрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП JSX рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рд╕реНрд╡рдд: рдкреВрд░реНрдгрддрд╛ "рдмреЙрдХреНрд╕ рд╕реЗ рдмрд╛рд╣рд░" рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рд╕рд╣рд╛рд░рд╛ рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ on:<event> рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рд▓реЗрдХрд┐рди рдпрд╣ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ JSX рдкреНрд░реЙрдкреНрд╕ рдореЗрдВ : рдЬреИрд╕реЗ рд╡рд░реНрдгреЛрдВ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИред
рдПрдХ рдФрд░ рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рд╣рдореЗрдВ рдХрд┐рд╕реА рднреА рддрд░рд╣ on: рдХреЛ рдкреНрд░реАрдкреЗрдиреНрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдИрд╡реЗрдВрдЯ рдкреНрд░рдХрд╛рд░ рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рдХреЛ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рдЬреЛ рдЗрд╕ рд╕рдордп рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд╕рд╛рде рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ ( рд╕рдВрдмрдВрдзрд┐рдд рдЯреАрдПрд╕ рд╕рдорд╕реНрдпрд╛ )ред

рдЗрди рдмрд╛рдзрд╛рдУрдВ рд╕реЗ рджреЛ рд╕рдорд╛рдзрд╛рди рдирд┐рдХрд▓рддреЗ рд╣реИрдВ:

  • рджреЗрд╡реЛрдВ рд╕реЗ рдХрд╣реЗрдВ рдХрд┐ рд╡реЗ рдЕрдкрдиреЗ рдИрд╡реЗрдВрдЯ рдЬреИрд╕реЗ __on__<eventName>: .. рдЯрд╛рдЗрдк рдХрд░реЗрдВ рдФрд░ рд╣рдо рднрд╛рд╖рд╛ рд╕рд░реНрд╡рд░ рдореЗрдВ рд╕реНрд╡рддрдГ рдкреВрд░реНрдг рд╣реЛрдиреЗ рдХреЗ рджреМрд░рд╛рди __on__ рдХреЛ on: рдмрджрд▓ рджреЗрдВрдЧреЗред рдпрд╣ рдЙрдк-рдЗрд╖реНрдЯрддрдо рдФрд░ рднрдВрдЧреБрд░ рд▓рдЧрддрд╛ рд╣реИред
  • рдЗрд╕рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реА "рд╕реНрд╡рдпрдВ" рд╕реНрд╡рдд: рдкреВрд░реНрдгрддрд╛ рд▓рд╛рдЧреВ рдХрд░реЗрдВред рдпрд╣ рд╕рдВрднрд╡рддрдГ рдПрдХ рдХрдард┐рди рдХрд╛рд░реНрдп рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рд╕реНрд╡рдЪреНрдЫ рд╕рдорд╛рдзрд╛рди рдХреА рдУрд░ рд▓реЗ рдЬрд╛рдПрдЧрд╛ред

" on:XXX рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИ" рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ #386 рдХреЛ $on рд╡рд┐рдзрд┐ рдкрд░рд┐рднрд╛рд╖рд╛ рдХреА рднрд┐рдиреНрдирддрд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╡рд┐рд▓рдп рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдЖрд╕рд╛рдиреА рд╕реЗ рд╕рдВрднрд╡ рд╣реИ рдпрджрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдкрдиреА рдШрдЯрдирд╛рдУрдВ рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЯрд╛рдЗрдк рдХрд░рддреЗ рд╣реИрдВ рддреЛ CustomEvent<any> рд╡рд╛рдкрд╕ рдирд╣реАрдВ рдЖрддреЗ рд╣реИрдВ .

рдПрдХ рдмрд╛рд░ https://github.com/sveltejs/svelte/pull/5260 рдЬрд╛рд░реА рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рд╣рдо svelte2tsx рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдпрд╣ createEventDispatcher , рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕рдореЗрдВ рдПрдХ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдПрдиреЛрдЯреЗрд╢рди рд╣реИ, рдФрд░ рдпрджрд┐ рд╣рд╛рдВ, рддреЛ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЙрдЪрд┐рдд рдкреНрд░рдХрд╛рд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░рддрд╛ рд╣реИред

рдЕрдм рдЖрдк Svelte 3.25.0 рдореЗрдВ рдкреЗрд╢ рдХрд┐рдП рдЧрдП createEventDispatcher рдЯрд╛рдЗрдкрд┐рдВрдЧ рдХрд╛ рд▓рд╛рдн рдЙрдард╛ рд╕рдХрддреЗ рд╣реИрдВред рдпрджрд┐ рддреБрдо рдХрд░реЛ

const dispatch = createEventDispatcher<{foo: string; bar: boolean}>();

рдЖрдкрдХреЛ рдШрдЯрдХ рдХреЗ рднреАрддрд░ dispatch рдХреЗ рд▓рд┐рдП рдордЬрдмреВрдд рдЯрд╛рдЗрдкрд┐рдВрдЧ рдорд┐рд▓рддреА рд╣реИ, рдФрд░ рдпрджрд┐ рдЖрдк foo / bar рдИрд╡реЗрдВрдЯ рд╕реБрдирддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдордЬрдмреВрдд рдЯрд╛рдЗрдкрд┐рдВрдЧ рдорд┐рд▓реЗрдЧреА:

on:foo={e => ... // <- e is of type CustomEvent<string>

рдЕрдм рдЖрдкрдХреЛ рдИрд╡реЗрдВрдЯ рдХреЗ рд▓рд┐рдП рдмреЗрд╣рддрд░ рд╕реНрд╡рддрдГ рдкреВрд░реНрдгрддрд╛ рднреА рдкреНрд░рд╛рдкреНрдд рд╣реЛрдЧреАред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЖрдкрдХреЛ рдЕрднреА рднреА рдЕрдиреНрдп рдШрдЯрдирд╛рдУрдВ рдХреЛ рд╕реБрдирдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рд╣реИ, рдЗрд╕рд▓рд┐рдП "рдХреЗрд╡рд▓ createEventDispatcher рдорд╛рдзреНрдпрдо рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдШрдЯрдирд╛рдУрдВ рдХреЛ рд╕реБрдиреЗрдВ" рдХреЗ рдЕрд░реНрде рдореЗрдВ рд╕реБрд░рдХреНрд╖рд╛ рдЯрд╛рдЗрдк рдХрд░рдирд╛ рдЕрднреА рднреА ComponentEvents рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╣реА рд╕рдВрднрд╡ рд╣реИред рд▓реЗрдХрд┐рди рд╣рдо рдХреБрдЫ (рд╢рд╛рдпрдж рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЯреИрдЧ рд╡рд┐рд╢реЗрд╖рддрд╛) рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВ рдЬреЛ рдШрдЯрдирд╛рдУрдВ рдХреЛ рд╕рдЦреНрдд рдмрдирд╛ рджреЗрдЧрд╛ред

рд╕рдВрдмрдВрдзрд┐рдд рджрд╕реНрддрд╛рд╡реЗрдЬрд╝: https://github.com/sveltejs/language-tools/blob/master/docs/preprocessors/typescript.md#typing -component-events

@dummdidumm

createEventDispatcher рд▓рд┐рдП рдХреБрдЫ рд╕реБрдирдиреЗ рдХреА рдШрдЯрдирд╛рдУрдВ рдкрд░ рдХреЛрдИ рд╡рд┐рдЪрд╛рд░ рдХреНрдпреЛрдВ рдкреНрд░рдХрд╛рд░ рдкреНрд░рд╛рдкреНрдд рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ?

рдЙрджрд╛рд╣рд░рдг:

// Component Foo
const dispatchFoo = createEventDispatcher<{foo: string; bar: boolean}>();
const dispatchBar = createEventDispatcher<{bar: string; baz: string}>();

// Component Bar
// e is CustomEvent<any>
on:foo="{(e) => handleFoo(e.detail.bar)}"
// e is CustomEvent<{baz: string}>
on:bar="{(e) => handleBar(e.detail.bar)}"

рдЯрд╛рдЗрдкрдкреНрд░рддрд┐ рд╕рдВрдХрд▓рдХ рдЙрдореНрдореАрдж рдХреЗ рдореБрддрд╛рдмрд┐рдХ рдЗрд╕реЗ рдкрдХрдбрд╝ рд▓реЗрддрд╛ рд╣реИред

рдХреНрд░рдо рдмрджрд▓рдиреЗ рд╕реЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкрд░рд┐рдгрд╛рдо рдорд┐рд▓рддреЗ рд╣реИрдВред

рдпрджрд┐ createEventDispatcher рдСрд░реНрдбрд░ рдмрджрд▓рддрд╛ рд╣реИ, рддреЛ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрдВрдкрд╛рдЗрд▓рд░ рддреНрд░реБрдЯрд┐ рдирд╣реАрдВ рдкрдХрдбрд╝рддрд╛ рд╣реИред
рдРрд╕рд╛ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдХреЗрд╡рд▓ рдЕрдВрддрд┐рдо createEventDispatcher рд╢реНрд░реЛрддрд╛ рдХреЗ рд▓рд┐рдП рдкреНрд░рдХрд╛рд░ рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИред

// Component Foo
const dispatchBar = createEventDispatcher<{bar: string; baz: string}>();
const dispatchFoo = createEventDispatcher<{foo: string; bar: boolean}>();

// Component Bar
// e is CustomEvent<{bar: boolean}>
on:foo="{(e) => handleFoo(e.detail.bar)}"
// e is CustomEvent<any>
on:bar="{(e) => handleBar(e.detail.bar)}"

рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрдВрдкрд╛рдЗрд▓рд░ рддреНрд░реБрдЯрд┐ рдирд╣реАрдВ рдкрдХрдбрд╝рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдкреНрд░рдХрд╛рд░ рдЕрдм CustomEvent<any> ред

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

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

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

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

maximedupre picture maximedupre  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

matthewmueller picture matthewmueller  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

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