@jsdocs-io/extractor
Version:
Analyze and extract the API from npm packages
21 lines (16 loc) • 563 B
text/typescript
import * as tsm from 'ts-morph';
export function hasFunctionLikeType(node: tsm.VariableDeclaration): boolean {
const typeKind = node.getTypeNode()?.getKind();
const hasFunctionType = typeKind === tsm.SyntaxKind.FunctionType;
if (hasFunctionType) {
return true;
}
const initializer = node.getInitializer();
if (!initializer) {
return false;
}
const hasFunctionInitializer =
tsm.Node.isArrowFunction(initializer) ||
tsm.Node.isFunctionExpression(initializer);
return hasFunctionInitializer;
}