Size: a a a

2021 March 15

A

Arushwl in Svelte [svelt]
А TS разве не статически типизированный транспилятор? Он умеет в динамические типы?
источник

AP

Alexander Ponomarev in Svelte [svelt]
о чем ты вообще
источник

A

Arushwl in Svelte [svelt]
Кирилл Спасибович
<script lang="ts">
 export let value: string | number = '';
 export let type = 'text';

 function handleInput(event: InputEvent): void {
   const { value: inputVal } = event.target as HTMLInputElement;
   value = type === 'number' ? +inputVal : inputVal;
 }
</script>

<input {type} {value} on:input={handleInput} on:input />
                       ^ошибка тут


как это пофиксить? добавляю проброс евента - ошибка пропала, убираю - ошибка

1. Type '(event: InputEvent) => void' is not assignable to type 'EventHandler<Event, HTMLInputElement>'.
Types of parameters 'event' and 'event' are incompatible.
Type 'Event & { currentTarget: EventTarget & HTMLInputElement; }' is missing the following properties from type 'InputEvent': data, inputType, isComposing, detail, and 2 more.
Вот об этом
источник

DK

Dan Kozlov in Svelte [svelt]
Кирилл Спасибович
<script lang="ts">
 export let value: string | number = '';
 export let type = 'text';

 function handleInput(event: InputEvent): void {
   const { value: inputVal } = event.target as HTMLInputElement;
   value = type === 'number' ? +inputVal : inputVal;
 }
</script>

<input {type} {value} on:input={handleInput} on:input />
                       ^ошибка тут


как это пофиксить? добавляю проброс евента - ошибка пропала, убираю - ошибка

1. Type '(event: InputEvent) => void' is not assignable to type 'EventHandler<Event, HTMLInputElement>'.
Types of parameters 'event' and 'event' are incompatible.
Type 'Event & { currentTarget: EventTarget & HTMLInputElement; }' is missing the following properties from type 'InputEvent': data, inputType, isComposing, detail, and 2 more.
На моей памяти они тайпинги для ивентов меняли раза два, я устал с этим бороться, поэтому у меня везде так:

const onInput: svelte.JSX.EventHandler<KeyboardEvent, HTMLInputElement> = e => {}
источник

DK

Dan Kozlov in Svelte [svelt]
Но я терпила, мне не противно такие вещи писать. Если найдёшь более вменяемое решение — напиши :)
источник

КС

Кирилл Спасибович... in Svelte [svelt]
Саймон говорит вот это: The type may be too generic in the definition. Type it as event: Event in the meantime
источник

DK

Dan Kozlov in Svelte [svelt]
Кирилл Спасибович
Саймон говорит вот это: The type may be too generic in the definition. Type it as event: Event in the meantime
Ну, если тебе подходит, то ок. Только надо понимать, что условные event.key или event.code тебе будут недоступны.
источник

AP

Alexander Ponomarev in Svelte [svelt]
блин ну в тайпингах реакта же все описано до мелочей
источник

AP

Alexander Ponomarev in Svelte [svelt]
неужели скопировать даже не смогли
источник

DK

Dan Kozlov in Svelte [svelt]
Ну и к currentTarget тоже не обратишься.
источник

КС

Кирилл Спасибович... in Svelte [svelt]
какая-то фигня короче
источник

DK

Dan Kozlov in Svelte [svelt]
Dan Kozlov
На моей памяти они тайпинги для ивентов меняли раза два, я устал с этим бороться, поэтому у меня везде так:

const onInput: svelte.JSX.EventHandler<KeyboardEvent, HTMLInputElement> = e => {}
Ну вот, тогда тоже будь терпилой.
источник

AP

Alexander Ponomarev in Svelte [svelt]
про каждый элемент и каждый well-known детально написано было...
источник

DK

Dan Kozlov in Svelte [svelt]
Alexander Ponomarev
блин ну в тайпингах реакта же все описано до мелочей
Я до определённого момента был уверен вообще, что они тайпинги и скопипастили из реакта.
источник

AP

Alexander Ponomarev in Svelte [svelt]
сконфузились от количества
источник

AP

Alexander Ponomarev in Svelte [svelt]
экономят байты даже сорс кода который не идет в бандл
источник

КС

Кирилл Спасибович... in Svelte [svelt]
наверное too strict
источник

КС

Кирилл Спасибович... in Svelte [svelt]
не очень forgiving
источник

DK

Dan Kozlov in Svelte [svelt]
А, ну, кстати, они и скопировали, это по копирайту видно.
https://github.com/sveltejs/language-tools/blob/master/packages/svelte2tsx/svelte-jsx.d.ts
источник

U

Uebanan_14_88 in Svelte [svelt]
Uebanan_14_88
Привет! Есть такой код:
<script>
import {darken} from 'polished'
</script>

<span>{darken(0.2, '#ffffff')}</span>

В SvelteKit появляется ошибка 'Maximum call stack size exceeded'.
Подскажите пожалуйста, это можно как-то починить?
Привет ещё раз, зайки
Перенёс polished в devDeps, прочитал документацию Vite (https://vitejs.dev/guide/ssr.html#ssr-externals), изменил конфиг:
источник