diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index ee0a3a90d7e99..8eee81073f616 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -6892,6 +6892,7 @@ namespace ts { case "Null": return nullType; case "Object": + case "object": return anyType; case "Function": case "function": diff --git a/tests/baselines/reference/checkJsdocTypeTag1.js b/tests/baselines/reference/checkJsdocTypeTag1.js index e4586643c22f2..664a02c604716 100644 --- a/tests/baselines/reference/checkJsdocTypeTag1.js +++ b/tests/baselines/reference/checkJsdocTypeTag1.js @@ -28,7 +28,17 @@ x1(0); /** @type {function (number): number} */ const x2 = (a) => a + 1; -x2(0); +x2(0); + +/** + * @type {object} + */ +var props = {}; + +/** + * @type {Object} + */ +var props = {}; //// [0.js] // @ts-check @@ -54,3 +64,11 @@ x1(0); /** @type {function (number): number} */ var x2 = function (a) { return a + 1; }; x2(0); +/** + * @type {object} + */ +var props = {}; +/** + * @type {Object} + */ +var props = {}; diff --git a/tests/baselines/reference/checkJsdocTypeTag1.symbols b/tests/baselines/reference/checkJsdocTypeTag1.symbols index fff51499bc4d8..cd337f8b5562d 100644 --- a/tests/baselines/reference/checkJsdocTypeTag1.symbols +++ b/tests/baselines/reference/checkJsdocTypeTag1.symbols @@ -58,3 +58,15 @@ const x2 = (a) => a + 1; x2(0); >x2 : Symbol(x2, Decl(0.js, 28, 5)) +/** + * @type {object} + */ +var props = {}; +>props : Symbol(props, Decl(0.js, 34, 3), Decl(0.js, 39, 3)) + +/** + * @type {Object} + */ +var props = {}; +>props : Symbol(props, Decl(0.js, 34, 3), Decl(0.js, 39, 3)) + diff --git a/tests/baselines/reference/checkJsdocTypeTag1.types b/tests/baselines/reference/checkJsdocTypeTag1.types index 898cf58806a66..8e59a2cdb7cb8 100644 --- a/tests/baselines/reference/checkJsdocTypeTag1.types +++ b/tests/baselines/reference/checkJsdocTypeTag1.types @@ -86,3 +86,17 @@ x2(0); >x2 : (arg0: number) => number >0 : 0 +/** + * @type {object} + */ +var props = {}; +>props : any +>{} : {} + +/** + * @type {Object} + */ +var props = {}; +>props : any +>{} : {} + diff --git a/tests/baselines/reference/jsdocTypeTag.js b/tests/baselines/reference/jsdocTypeTag.js index ff92f0f04747a..4789b1d26afce 100644 --- a/tests/baselines/reference/jsdocTypeTag.js +++ b/tests/baselines/reference/jsdocTypeTag.js @@ -55,6 +55,9 @@ var nullable; /** @type {Object} */ var Obj; +/** @type {object} */ +var obj; + /** @type {Function} */ var Func; @@ -77,6 +80,7 @@ var P: Promise; var p: Promise; var nullable: number | null; var Obj: any; +var obj: any; var Func: Function; @@ -117,6 +121,8 @@ var p; var nullable; /** @type {Object} */ var Obj; +/** @type {object} */ +var obj; /** @type {Function} */ var Func; //// [b.js] @@ -138,4 +144,5 @@ var P; var p; var nullable; var Obj; +var obj; var Func; diff --git a/tests/baselines/reference/jsdocTypeTag.symbols b/tests/baselines/reference/jsdocTypeTag.symbols index 5931c1cfe5326..77df5b119f470 100644 --- a/tests/baselines/reference/jsdocTypeTag.symbols +++ b/tests/baselines/reference/jsdocTypeTag.symbols @@ -71,9 +71,13 @@ var nullable; var Obj; >Obj : Symbol(Obj, Decl(a.js, 52, 3), Decl(b.ts, 17, 3)) +/** @type {object} */ +var obj; +>obj : Symbol(obj, Decl(a.js, 55, 3), Decl(b.ts, 18, 3)) + /** @type {Function} */ var Func; ->Func : Symbol(Func, Decl(a.js, 55, 3), Decl(b.ts, 18, 3)) +>Func : Symbol(Func, Decl(a.js, 58, 3), Decl(b.ts, 19, 3)) === tests/cases/conformance/jsdoc/b.ts === var S: string; @@ -132,7 +136,10 @@ var nullable: number | null; var Obj: any; >Obj : Symbol(Obj, Decl(a.js, 52, 3), Decl(b.ts, 17, 3)) +var obj: any; +>obj : Symbol(obj, Decl(a.js, 55, 3), Decl(b.ts, 18, 3)) + var Func: Function; ->Func : Symbol(Func, Decl(a.js, 55, 3), Decl(b.ts, 18, 3)) +>Func : Symbol(Func, Decl(a.js, 58, 3), Decl(b.ts, 19, 3)) >Function : Symbol(Function, Decl(lib.d.ts, --, --), Decl(lib.d.ts, --, --)) diff --git a/tests/baselines/reference/jsdocTypeTag.types b/tests/baselines/reference/jsdocTypeTag.types index f3e7dfad6348a..9813a186a00d9 100644 --- a/tests/baselines/reference/jsdocTypeTag.types +++ b/tests/baselines/reference/jsdocTypeTag.types @@ -71,6 +71,10 @@ var nullable; var Obj; >Obj : any +/** @type {object} */ +var obj; +>obj : any + /** @type {Function} */ var Func; >Func : Function @@ -135,6 +139,9 @@ var nullable: number | null; var Obj: any; >Obj : any +var obj: any; +>obj : any + var Func: Function; >Func : Function >Function : Function diff --git a/tests/cases/conformance/jsdoc/checkJsdocTypeTag1.ts b/tests/cases/conformance/jsdoc/checkJsdocTypeTag1.ts index fbed9d83b2271..4dc7b93457183 100644 --- a/tests/cases/conformance/jsdoc/checkJsdocTypeTag1.ts +++ b/tests/cases/conformance/jsdoc/checkJsdocTypeTag1.ts @@ -31,4 +31,14 @@ x1(0); /** @type {function (number): number} */ const x2 = (a) => a + 1; -x2(0); \ No newline at end of file +x2(0); + +/** + * @type {object} + */ +var props = {}; + +/** + * @type {Object} + */ +var props = {}; \ No newline at end of file diff --git a/tests/cases/conformance/jsdoc/jsdocTypeTag.ts b/tests/cases/conformance/jsdoc/jsdocTypeTag.ts index d566c61e18588..1c19771a3cd38 100644 --- a/tests/cases/conformance/jsdoc/jsdocTypeTag.ts +++ b/tests/cases/conformance/jsdoc/jsdocTypeTag.ts @@ -57,6 +57,9 @@ var nullable; /** @type {Object} */ var Obj; +/** @type {object} */ +var obj; + /** @type {Function} */ var Func; @@ -79,4 +82,5 @@ var P: Promise; var p: Promise; var nullable: number | null; var Obj: any; +var obj: any; var Func: Function;