acesta este modul de declarare a tipurilor de funcții în interfețele Typescript. A scris acest articol din cauza informațiilor confuze acolo și documentația Typescript nu este direct cu privire la sintaxa.
(notă, următoarele exemple folosesc clasele Typescript React doar ca exemple, deoarece tipurile de funcții sunt deosebit de utile acolo, dar sintaxa se aplică oricărei interfețe Typescript.)
Exemplul 1: Funcția care nu ia argumente și nu returnează o valoare:
în exemplul de mai josonChange
este declarația funcției. Funcția returnează nimic (void), astfel încât să declarăm tipul de returnare ca oricare. Acest lucru se datorează faptului că nule și niciodată nu sunt evaluate diferit în contexte diferite (dincolo de domeniul de aplicare al acestui articol). (Mai jos sunt câteva exemple de valori returnate tastate.)
interface MyClassProps {
someProp: string;
onChange(): any;
}class MyClass extends React.Component<MyClassProps, MyClassState> ...
Exemplul 2: funcție care acceptă un argument:
includeți numele argumentului și tipul acestuia. Numele argumentului este necesar, dar nu trebuie să se potrivească atunci când instantiați funcția reală, dar tipul trebuie să se potrivească. Este rață tastat ca este totul în Typescript.
interface MyClassProps {
anotherProp: number;
onChange(name: string): any;
}
Exemplul 3: Funcție care acceptă un argument și returnează o valoare:
această funcție acceptă un șir ca argument și returnează un număr.
interface MyClassProps {
onChange(name: string): number;
}
Exemplul 4: funcție opțională:
Sufixați numele proprietății cu operatorul opțional?
. Puneți ?
după numele proprietății și înainte de lista argumentelor. În Typescript React toate recuzita sunt necesare dacă nu utilizați operatorul opțional. Ca și în cazul oricărui recuzită care nu este necesară în React, va trebui să verificați dacă recuzita este undefined
înainte de a o utiliza.
interface MyClassProps {
onChange?(name: string): number;
niceProp: boolean;
}
exemplul 5: Utilizarea cuvântului cheie type:
uneori este convenabil să declarați mai întâi tipul funcției, apoi să utilizați tipul într-o interfață. Pentru a declara o funcție ca tip, sintaxa este ușor diferită. Utilizați operatorul săgeată.
type MyFunctionType = (name: string) => number;interface MyClassProps {
onChange: MyFunctionType;
niceProp: string;
}
bucurați-vă.