Language-tools: [рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ] рдПрдХ рдШрдЯрдХ рдХреЛ рдорд╛рди рдХреЗ рд░реВрдк рдореЗрдВ рдкрдХрдбрд╝реЗ рд╣реБрдП рдЪрд░ рдХреЛ рдЯрд╛рдЗрдк рдХрд░рдирд╛

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

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

import AnyComponent from "./AnyComponent"

const componentStore = writable<SvelteComponent>(null)

$componentStore = AnyComponent

рдЕрдВрддрд┐рдо рдкрдВрдХреНрддрд┐ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рддреНрд░реБрдЯрд┐ рджреЗрдЧреА:

рдЯрд╛рдЗрдк 'рдЯрд╛рдЗрдкреЛ'

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

рдпрд╣рд╛рдБ рдПрдХ StackOverflow рдкреЛрд╕реНрдЯ рд╣реИ рдЬрд┐рд╕реЗ рдореИрдВрдиреЗ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рд▓рд┐рдЦрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЦреЛрд▓рд╛ рдерд╛, рдЬрд╣рд╛рдБ @dummdidumm рдиреЗ рдореБрдЭреЗ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдЦреЛрд▓рдиреЗ рдХрд╛ рдирд┐рд░реНрджреЗрд╢ рджрд┐рдпрд╛ рдерд╛ред рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдпрд╣ рдареАрдХ рд╣реИред

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

рд╣рд╛рдп рд╡рд╣рд╛рдБ ЁЯШД
рдПрдХ рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рд╣рдо рдЕрдкрдиреЗ Svelte рдШрдЯрдХ рд╡рд░реНрдЧ рдХреА рдЖрдВрддрд░рд┐рдХ рдкрд░рд┐рднрд╛рд╖рд╛ рдкрд░ рдХреБрдЫ рдЧреБрдг / рд╡рд┐рдзрд┐рдпрд╛рдБ рдпрд╛рдж рдХрд░ рд░рд╣реЗ рд╣реИрдВред рджреВрд╕рд░реА рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдЯрд╛рдЗрдкрд┐рдВрдЧ рдЧрд▓рдд рд╣реИ, рдпрд╣ writable<typeof SvelteComponent> рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЕрдиреНрдпрдерд╛ рдЖрдк рдЙрд╕ рдХрдВрдкреЛрдиреЗрдВрдЯ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рди рдХрд┐ рдХреНрд▓рд╛рд╕ рдЯрд╛рдЗрдк рдХрд╛ред

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

рд╣рд╛рдп рд╡рд╣рд╛рдБ ЁЯШД
рдПрдХ рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рд╣рдо рдЕрдкрдиреЗ Svelte рдШрдЯрдХ рд╡рд░реНрдЧ рдХреА рдЖрдВрддрд░рд┐рдХ рдкрд░рд┐рднрд╛рд╖рд╛ рдкрд░ рдХреБрдЫ рдЧреБрдг / рд╡рд┐рдзрд┐рдпрд╛рдБ рдпрд╛рдж рдХрд░ рд░рд╣реЗ рд╣реИрдВред рджреВрд╕рд░реА рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдЯрд╛рдЗрдкрд┐рдВрдЧ рдЧрд▓рдд рд╣реИ, рдпрд╣ writable<typeof SvelteComponent> рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЕрдиреНрдпрдерд╛ рдЖрдк рдЙрд╕ рдХрдВрдкреЛрдиреЗрдВрдЯ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рди рдХрд┐ рдХреНрд▓рд╛рд╕ рдЯрд╛рдЗрдк рдХрд╛ред

рдореИрдВрдиреЗ рдПрдХ рд╕рдорд╛рди рдореБрджреНрджреЗ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд┐рдпрд╛ рд╣реИред

import type { SvelteComponent } from 'svelte';
import Comp from './Comp.svelte';

const comp: SvelteComponent = Comp; // Type 'typeof SvelteComponentDev' is missing the following properties from type SvelteComponentDev: $set, $on, $destroy ...

v 3.35.0

рд╕рд╡рд╛рд▓ рдпрд╣ рд╣реИ рдХрд┐ рдПрдХ рдЖрдпрд╛рддрд┐рдд рдШрдЯрдХ рдореЗрдВ SvelteComponentDev рдХреЗ рдмрдЬрд╛рдп "рдЯрд╛рдЗрдкреЛрдлрд╝ SvelteComponentDev" рдкреНрд░рдХрд╛рд░ рдХреНрдпреЛрдВ рд╣реИ

рдХреНрдпреЛрдВрдХрд┐ Comp рд╡рд░реНрдЧ рд╣реИ, рди рдХрд┐ рдЙрд╕ рд╡рд░реНрдЧ рдХрд╛ рдЙрджрд╛рд╣рд░рдгред

class Foo {
    bar: string;
}

class Comp extends Foo {}

const comp: Foo = new Comp(); // OK
const compClass1: Foo = Comp; // WRONG
const compClass2: typeof Foo = Comp; // OK

рдЖрд╣ред рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред рдзрдиреНрдпрд╡рд╛рджред

рдЕрдм рд╕реАрдзреЗ 2 рджрд┐рдиреЛрдВ рдХреЗ рд▓рд┐рдП рдЗрд╕рд╕реЗ рд▓рдбрд╝рдирд╛ред рдореБрдЭреЗ рдпрд╣ рдмрд┐рд▓рдХреБрд▓ рд╕рдордЭ рдореЗрдВ рдирд╣реАрдВ рдЖрдпрд╛:

<script lang="ts">
  import MyComponent from "./MyComponent.svelte";
  let myComponent: typeof MyComponent;
</script>

<MyComponent bind:this={myComponent}/> //Error here
Argument of type 'typeof MyComponent__SvelteComponent_' is not assignable to parameter of type 'MyComponent__SvelteComponent_'.   
Type 'typeof MyComponent__SvelteComponent_' is missing the following properties from type 'MyComponent__SvelteComponent_': $$prop_def, $$events_def, $$slot_def, $on, and 5 more.ts(2345)

рдореБрдЭрд╕реЗ рдпрд╣рд╛рдВ рдХреНрдпрд╛ рдЧрд▓рдд рд╣реЛ рд░рд╣рд╛ рд╣реИ? рдореИрдВ рдмрд╕ рдЙрд╕ рдЙрджрд╛рд╣рд░рдг рдХреЛ рдПрдХ рдЪрд░ рдореЗрдВ рд▓рд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред ЁЯШн

@ рдЕрд▓реНрдлрд╛рдЧреБрди74 рдЖрдкрдХреЛ рдЬрд┐рд╕ рдореБрджреНрджреЗ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝ рд░рд╣рд╛ рд╣реИ, рд╡рд╣ рдЗрд╕ рдзрд╛рдЧреЗ рдореЗрдВ рджреВрд╕рд░реЛрдВ рдХреА рддрд░рд╣ рдирд╣реАрдВ рд╣реИред рдЖрдк рдЬреЛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рд╡рд╣ рдХрдХреНрд╖рд╛ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИред рддреЛ рдЖрдкрдХреЛ рдмрд╕ рдЬрд░реВрд░рдд рд╣реИ:

<script lang="ts">
  import MyComponent from "./MyComponent.svelte";
  let myComponent: MyComponent;
</script>

<MyComponent bind:this={myComponent}/>

рдЕрдиреНрдп рд▓реЛрдЧ рдПрдХ рдЧрддрд┐рд╢реАрд▓ рдШрдЯрдХ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЙрдиреНрд╣реЗрдВ рд╡рд░реНрдЧ рд╣реА, рдПрдХ рд╡рд┐рд╢реЗрд╖ рдлрд╝рдВрдХреНрд╢рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред

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