UNPKG

563 BPlain TextView Raw
1import * as tsm from 'ts-morph';
2
3export function hasFunctionLikeType(node: tsm.VariableDeclaration): boolean {
4 const typeKind = node.getTypeNode()?.getKind();
5 const hasFunctionType = typeKind === tsm.SyntaxKind.FunctionType;
6 if (hasFunctionType) {
7 return true;
8 }
9
10 const initializer = node.getInitializer();
11 if (!initializer) {
12 return false;
13 }
14
15 const hasFunctionInitializer =
16 tsm.Node.isArrowFunction(initializer) ||
17 tsm.Node.isFunctionExpression(initializer);
18
19 return hasFunctionInitializer;
20}