V současném prostředí JavaScriptu s novými syntaxemi, funkcemi a používáním spousty externích knihoven se zdá být těžší než kdy jindy ujistit se, jaké funkce jsou poskytovány, nebo dokonce co data představují. Samozřejmě jsme vymysleli Flow a TypeScript, které nám pomohou, ale nemůžeme počítat s tím, že budou vždy k dispozici. Proto rád dělám svou vlastní detekci pomocí JavaScriptu, zejména pokud jde o typy funkcí.
Chcete-li zjistit, zda je funkce generátorem nebo funkcí asynchronního generátoru, můžete použít následující kód:
// Sample generator function function* sampleGenerator() {} sampleGenerator.constructor.name // "GeneratorFunction" async function* sampleGenerator() {} sampleGenerator.constructor.name // "AsyncGeneratorFunction"
Shodou okolností můžete také zjistit běžnou asynchronní funkci pomocí:
async function asyncThing() {} asyncThing.constructor.name // "AsyncFunction"
Vždy je důležité vědět, zda kód, který používáte, je synchronizovaný, asynchronní nebo generátor, ale pokud používáte externí knihovny nebo chcete psát komplexní testy, mohou být tyto typy detekce nezbytné.