Maybaygiare.org

Blog Network

funkce rozhraní Typescript

takto lze deklarovat typy funkcí v rozhraní Typescript. Napsal tento článek, protože matoucí informace tam a dokumentace strojopisu není přímá o syntaxi.

(poznámka: Následující příklady používají třídy Typescript React pouze jako příklady, protože typy funkcí jsou zde zvláště užitečné, ale syntaxe platí pro jakékoli rozhraní Typescript.)

Příklad 1: Funkce, která nebere argumenty a nevrací hodnotu:

V níže uvedeném příkladuonChange je funkce prohlášení. Funkce nevrací nic (void), takže deklarujeme typ návratu jako libovolný. Je to proto, že neplatné a nikdy nejsou hodnoceny odlišně v různých kontextech (nad rámec tohoto článku). (Níže jsou uvedeny některé příklady zadaných návratových hodnot.)

interface MyClassProps {
someProp: string;
onChange(): any;
}class MyClass extends React.Component<MyClassProps, MyClassState> ...

příklad 2: funkce, která přijímá argument:

zahrnuje název argumentu a jeho typ. Název argumentu je vyžadován, ale nemusí se shodovat při instanci skutečné funkce, ale typ se musí shodovat. Je to kachna napsaná jako všechno na strojopisu.

interface MyClassProps {
anotherProp: number;
onChange(name: string): any;
}

příklad 3: Funkce, která přijímá argument a vrací hodnotu:

Tato funkce přijímá řetězec jako argument a vrací číslo.

interface MyClassProps {
onChange(name: string): number;
}

Příklad 4: Funkce, která je volitelná:

Přípona, název vlastnosti s Volitelným Operátor ?. Za název vlastnosti a před seznam argumentů vložte ?. V TypeScript React jsou vyžadovány všechny rekvizity, pokud nepoužíváte volitelný operátor. Stejně jako u jiných nepotřebných rekvizit v React budete muset před použitím zkontrolovat, zda je podpěra undefined.

interface MyClassProps {
onChange?(name: string): number;
niceProp: boolean;
}

příklad 5: použití klíčového slova typu:

někdy je vhodné nejprve deklarovat typ funkce a poté použít typ v rozhraní. Chcete-li deklarovat funkci jako typ, syntaxe se mírně liší. Použijte operátor šipky.

type MyFunctionType = (name: string) => number;interface MyClassProps {
onChange: MyFunctionType;
niceProp: string;
}

užívat si.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.