1 | import * as tsm from 'ts-morph';
|
2 |
|
3 | export 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 | }
|