Size: a a a

Svelte [svelt] - All about Svelte JavaScript framework.

2021 September 17

KK

Konstantin Kharitono... in Svelte [svelt] - All about Svelte JavaScript framework.
NodeJS.Module?
источник

AP

Alexander Ponomarev in Svelte [svelt] - All about Svelte JavaScript framework.
но ты можешь попрообвать написать Promise<{ default: { new(): ThemeComponent }>>
источник

KK

Konstantin Kharitono... in Svelte [svelt] - All about Svelte JavaScript framework.
не подходит, так как мне нужен общий для всех импотуруемых компоенентов (type ThemeComponent = SvelteComponentTyped<{ themeClass: string; }>)
источник

AP

Alexander Ponomarev in Svelte [svelt] - All about Svelte JavaScript framework.
ты грузишь модуль
источник

AP

Alexander Ponomarev in Svelte [svelt] - All about Svelte JavaScript framework.
в нем поля с экспортами
источник

AP

Alexander Ponomarev in Svelte [svelt] - All about Svelte JavaScript framework.
в эскпорте лежит конструктор класса
источник

AP

Alexander Ponomarev in Svelte [svelt] - All about Svelte JavaScript framework.
это даже не SvelteComponentTyped<{ themeClass: string; }> потому что это тип ИНСТАНСА
источник

KK

Konstantin Kharitono... in Svelte [svelt] - All about Svelte JavaScript framework.
так мне нужен именно этот тип, мне не нужен typeof import('../lib/themes/light.svelte')
источник

AP

Alexander Ponomarev in Svelte [svelt] - All about Svelte JavaScript framework.
но ты грузишь именно его
источник

KK

Konstantin Kharitono... in Svelte [svelt] - All about Svelte JavaScript framework.
да, но он подходит под тото тип, который мне нужен
источник

AP

Alexander Ponomarev in Svelte [svelt] - All about Svelte JavaScript framework.
нет он под него не подходит
источник

AP

Alexander Ponomarev in Svelte [svelt] - All about Svelte JavaScript framework.
SvelteComponentTyped<{ themeClass: string; }> это уже созданный инстанс класса SvelteComponentTyped
источник

AP

Alexander Ponomarev in Svelte [svelt] - All about Svelte JavaScript framework.
а модуле лежит сам класс который создает инстансы
источник

AP

Alexander Ponomarev in Svelte [svelt] - All about Svelte JavaScript framework.
ты понимаешь что
const a: A = new A();

потом ты не можешь делать
const b = new a();

потому что A это инстанс класса A, а сам класс A это { new (): A }
источник

KK

Konstantin Kharitono... in Svelte [svelt] - All about Svelte JavaScript framework.
я не хочу писать что-то типа

```
type ThemeComponent = typeof import('../lib/themes/light.svelte') | typeof import('../lib/themes/dark.svelte')
```

Я хочу объединить их в один тип
источник

AP

Alexander Ponomarev in Svelte [svelt] - All about Svelte JavaScript framework.
называть это копонентом неправильно, это не конмпонент =)
но если ты хочешь их объединить то видимо так как ты написал и надо: через typeof ... | typeof ...
источник

KK

Konstantin Kharitono... in Svelte [svelt] - All about Svelte JavaScript framework.
я поменял пример на это
type ThemeComponent = SvelteComponentTyped<{ themeClass: string; }>
const themes = {
  light: async (): Promise<ThemeComponent> => (await import('../lib/themes/light.svelte')).default,
  dark: async (): Promise<ThemeComponent> => (await import('../lib/themes/dark.svelte')).default
};
источник

AP

Alexander Ponomarev in Svelte [svelt] - All about Svelte JavaScript framework.
так?
источник

AP

Alexander Ponomarev in Svelte [svelt] - All about Svelte JavaScript framework.
у тебя все равно не работает =)
источник

KK

Konstantin Kharitono... in Svelte [svelt] - All about Svelte JavaScript framework.
да, как его допилить-то?
источник