From cbafdb4191ef38ca680381a5db7f54e151491a68 Mon Sep 17 00:00:00 2001 From: Hood Chatham Date: Tue, 30 Apr 2024 22:07:10 +0200 Subject: [PATCH] Add rendering for queryType --- sphinx_js/js/renderType.ts | 5 ++++- tests/test_typedoc_analysis/source/types.ts | 2 ++ tests/test_typedoc_analysis/test_typedoc_analysis.py | 4 ++++ 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/sphinx_js/js/renderType.ts b/sphinx_js/js/renderType.ts index f8cb1bbe..58147991 100644 --- a/sphinx_js/js/renderType.ts +++ b/sphinx_js/js/renderType.ts @@ -146,7 +146,10 @@ class TypeRenderer implements TypeVisitor { ]; } query(type: QueryType): Type { - throw new Error("Not implemented"); + return [ + "typeof ", + ...this.render(type.queryType, TypeContext.queryTypeTarget), + ]; } reference(type: ReferenceType): Type { if (type.isIntentionallyBroken()) { diff --git a/tests/test_typedoc_analysis/source/types.ts b/tests/test_typedoc_analysis/source/types.ts index 7ecaffea..7d090482 100644 --- a/tests/test_typedoc_analysis/source/types.ts +++ b/tests/test_typedoc_analysis/source/types.ts @@ -189,3 +189,5 @@ export function destructureTest4(destructureThisPlease: { export function funcArg(a: (b: number, c: number) => number) {} export function namedTupleArg(namedTuple: [key: string, value: any]) {} + +export let queryType: typeof A; diff --git a/tests/test_typedoc_analysis/test_typedoc_analysis.py b/tests/test_typedoc_analysis/test_typedoc_analysis.py index c0bded9b..f00a5594 100644 --- a/tests/test_typedoc_analysis/test_typedoc_analysis.py +++ b/tests/test_typedoc_analysis/test_typedoc_analysis.py @@ -578,3 +578,7 @@ def test_namedtuplearg(self): obj = self.analyzer.get_object(["namedTupleArg"]) assert obj.params[0].name == "namedTuple" assert join_type(obj.params[0].type) == "[key: string, value: any]" + + def test_query(self): + obj = self.analyzer.get_object(["queryType"]) + assert join_type(obj.type) == "typeof A"