virnik
#react #syncfusion #frontend #programowanie

Zacząłem się bawić komponentami z syncfusion i przy podstawach strzela mnie szlag.
Dla zdarzenia change z komponentu TextBox jak dam any to działa wszystko, ale muszę rzutować w obsłudze tego zdarzenia. Natomiast jak zamiast any dam EmitType co jest w dokumentacji TextBox Syncfusion, to mam niżej przedstawiony błąd.

Ktoś jakiś trop? To zapewne jest bardzo proste, próbowałem zmieniać typy wynikowe etc. ale no nie pomaga.
  • Najlepsze
  • Wszystkie komentarze
Sakuy
Sakuy
1
@virnik:

Masz może jakieś ciekawe materiały, przykłady oprócz oficjalnej dokumentacji co robić tak a nie inaczej? ( ͡° ͜ʖ ͡°)

https://github.com/airbnb/javascript/tree/master/react

Nie korzystam z syncfusion, ale oznaczanie jako private metody w klasie reactowej, która nie jest potem instancjonowana ani żadna inna klasa po niej nie dziedziczy to dla mnie bezsens i wprowadzanie niepotrzebnego zamieszania do kodu.
abraxasss
@virnik: strzelam, bo w ts niedawno zacząłem. Usuń private? :P
virnik
virnik Autor
0
@abraxasss: Nope, to nie ma znaczenia.
virnik
virnik Autor
0
Type '(event: EmitType) => void' is not assignable to type 'EmitType'.
Type '(event: EmitType) => void' is not assignable to type '(arg?: ChangedEventArgs | undefined, ...rest: any[]) => void'.
Types of parameters 'event' and 'arg' are incompatible.
Type 'ChangedEventArgs | undefined' is not assignable to type 'EmitType'.
Type 'undefined' is not assignable to type 'EmitType'.
Type 'undefined' is not assignable to type 'AngularEventEmitter'.

@LazyInitializationException:
virnik
virnik Autor
0
The expected type comes from property 'change' which is declared here on type 'IntrinsicAttributes & IntrinsicClassAttributes & Readonly<{ children?: string | number | boolean | {} | ReactElement ReactElement Component<...>)> | null) | (new (props: any) => Component<...>)> | ... 4 more ... | undefined; }>...'
@LazyInitializationException:
D.....K
D.....K
@virnik Spróbuj otypować change typami które sa oczekiwane czyli change: (arg?: ChangedEventArgs) => void albo change: EmitType
virnik
virnik Autor
0
@DVNK: dla

interface Props {
change: (event: ChangedEventArgs) => void;
virnik
virnik Autor
0
@DVNK: @LazyInitializationException: Omg, już działa.

change: (arg?: ChangedEventArgs) => void;
Załatwiło sprawę, dzięki. Już wiem jak czytać te błędy. ( ͡° ͜ʖ ͡°)
u_k1
u_k1
0
taktyk, moze sie kiedys przydac ( ͡° ͜ʖ ͡°)
Sakuy
Sakuy
0
@virnik: Hermetyzacja w klasach reactowych to anty pattern.
virnik
virnik Autor
0
@Sakuy: Masz może jakieś ciekawe materiały, przykłady oprócz oficjalnej dokumentacji co robić tak a nie inaczej? ( ͡° ͜ʖ ͡°)
virnik
virnik Autor
0
@Sakuy: Dzięki bardzo (ʘ‿ʘ)