|
|
@ -1235,26 +1235,25 @@ export function inferRuntimeType( |
|
|
|
try { |
|
|
|
const types = resolveIndexType(ctx, node, scope) |
|
|
|
return flattenTypes(ctx, types, scope) |
|
|
|
} catch (e) { |
|
|
|
// avoid hard error, fallback to unknown
|
|
|
|
return [UNKNOWN_TYPE] |
|
|
|
} |
|
|
|
} catch (e) {} |
|
|
|
} |
|
|
|
|
|
|
|
case 'ClassDeclaration': |
|
|
|
return ['Object'] |
|
|
|
|
|
|
|
case 'TSImportType': { |
|
|
|
const sourceScope = importSourceToScope( |
|
|
|
ctx, |
|
|
|
node.argument, |
|
|
|
scope, |
|
|
|
node.argument.value |
|
|
|
) |
|
|
|
const resolved = resolveTypeReference(ctx, node, sourceScope) |
|
|
|
if (resolved) { |
|
|
|
return inferRuntimeType(ctx, resolved, resolved._ownerScope) |
|
|
|
} |
|
|
|
try { |
|
|
|
const sourceScope = importSourceToScope( |
|
|
|
ctx, |
|
|
|
node.argument, |
|
|
|
scope, |
|
|
|
node.argument.value |
|
|
|
) |
|
|
|
const resolved = resolveTypeReference(ctx, node, sourceScope) |
|
|
|
if (resolved) { |
|
|
|
return inferRuntimeType(ctx, resolved, resolved._ownerScope) |
|
|
|
} |
|
|
|
} catch (e) {} |
|
|
|
} |
|
|
|
|
|
|
|
default: |
|
|
|