From 886a5fd183e6013179fe7978980f9f5b67917eba Mon Sep 17 00:00:00 2001 From: Tavian Barnes Date: Tue, 1 Oct 2019 13:21:59 -0400 Subject: [PATCH] tests/typescript: Add a test for function overloads --- tests/typescript/overload.ts | 13 +++++ tests/typescript/overload.ts.jsdoc | 93 ++++++++++++++++++++++++++++++ 2 files changed, 106 insertions(+) create mode 100644 tests/typescript/overload.ts create mode 100644 tests/typescript/overload.ts.jsdoc diff --git a/tests/typescript/overload.ts b/tests/typescript/overload.ts new file mode 100644 index 00000000..f63ade51 --- /dev/null +++ b/tests/typescript/overload.ts @@ -0,0 +1,13 @@ +/** + * An overloaded function (1). + */ +function foo(bar: number): number; + +/** + * An overloaded function (2). + */ +function foo(bar: string): string; + +function foo(bar: number | string): number | string { + return bar; +} diff --git a/tests/typescript/overload.ts.jsdoc b/tests/typescript/overload.ts.jsdoc new file mode 100644 index 00000000..8ba2a625 --- /dev/null +++ b/tests/typescript/overload.ts.jsdoc @@ -0,0 +1,93 @@ +[ + { + "comment": "", + "description": "", + "kind": "external", + "longname": "external:overload", + "meta": { + "code": {}, + "filename": "overload.ts", + "lineno": 1, + "path": "./" + }, + "name": "\"overload\"" + }, + { + "comment": "", + "description": "An overloaded function (1).\n\n", + "kind": "function", + "longname": "external:overload.foo", + "memberof": "external:overload", + "meta": { + "code": { + "paramnames": [ + "bar" + ] + }, + "filename": "overload.ts", + "lineno": 4, + "path": "./" + }, + "name": "foo", + "params": [ + { + "description": "", + "name": "bar", + "type": { + "names": [ + "number" + ] + } + } + ], + "returns": [ + { + "name": "foo", + "type": { + "names": [ + "number" + ] + } + } + ] + }, + { + "comment": "", + "description": "An overloaded function (2).\n\n", + "kind": "function", + "longname": "external:overload.foo", + "memberof": "external:overload", + "meta": { + "code": { + "paramnames": [ + "bar" + ] + }, + "filename": "overload.ts", + "lineno": 4, + "path": "./" + }, + "name": "foo", + "params": [ + { + "description": "", + "name": "bar", + "type": { + "names": [ + "string" + ] + } + } + ], + "returns": [ + { + "name": "foo", + "type": { + "names": [ + "string" + ] + } + } + ] + } +] \ No newline at end of file