diff --git a/src/lib/es5.d.ts b/src/lib/es5.d.ts index b8c0c0d6bda39..6f6f4c493009a 100644 --- a/src/lib/es5.d.ts +++ b/src/lib/es5.d.ts @@ -177,14 +177,14 @@ interface ObjectConstructor { * @param p The property name. * @param attributes Descriptor for the property. It can be for a data property or an accessor property. */ - defineProperty(o: any, p: PropertyKey, attributes: PropertyDescriptor & ThisType): any; + defineProperty(o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType): T; /** * Adds one or more properties to an object, and/or modifies attributes of existing properties. * @param o Object on which to add or modify the properties. This can be a native JavaScript object or a DOM object. * @param properties JavaScript object that contains one or more descriptor objects. Each descriptor object describes a data property or an accessor property. */ - defineProperties(o: any, properties: PropertyDescriptorMap & ThisType): any; + defineProperties(o: T, properties: PropertyDescriptorMap & ThisType): T; /** * Prevents the modification of attributes of existing properties, and prevents the addition of new properties. diff --git a/tests/baselines/reference/checkExportsObjectAssignProperty.types b/tests/baselines/reference/checkExportsObjectAssignProperty.types index a029a2aef6df9..60fcd84477a12 100644 --- a/tests/baselines/reference/checkExportsObjectAssignProperty.types +++ b/tests/baselines/reference/checkExportsObjectAssignProperty.types @@ -175,10 +175,10 @@ m2.setonlyAccessor = 0; === tests/cases/conformance/jsdoc/mod1.js === Object.defineProperty(exports, "thing", { value: 42, writable: true }); ->Object.defineProperty(exports, "thing", { value: 42, writable: true }) : any ->Object.defineProperty : (o: any, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => any +>Object.defineProperty(exports, "thing", { value: 42, writable: true }) : typeof import("tests/cases/conformance/jsdoc/mod1") +>Object.defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T >Object : ObjectConstructor ->defineProperty : (o: any, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => any +>defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T >exports : typeof import("tests/cases/conformance/jsdoc/mod1") >"thing" : "thing" >{ value: 42, writable: true } : { value: number; writable: true; } @@ -188,10 +188,10 @@ Object.defineProperty(exports, "thing", { value: 42, writable: true }); >true : true Object.defineProperty(exports, "readonlyProp", { value: "Smith", writable: false }); ->Object.defineProperty(exports, "readonlyProp", { value: "Smith", writable: false }) : any ->Object.defineProperty : (o: any, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => any +>Object.defineProperty(exports, "readonlyProp", { value: "Smith", writable: false }) : typeof import("tests/cases/conformance/jsdoc/mod1") +>Object.defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T >Object : ObjectConstructor ->defineProperty : (o: any, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => any +>defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T >exports : typeof import("tests/cases/conformance/jsdoc/mod1") >"readonlyProp" : "readonlyProp" >{ value: "Smith", writable: false } : { value: string; writable: false; } @@ -201,10 +201,10 @@ Object.defineProperty(exports, "readonlyProp", { value: "Smith", writable: false >false : false Object.defineProperty(exports, "rwAccessors", { get() { return 98122 }, set(_) { /*ignore*/ } }); ->Object.defineProperty(exports, "rwAccessors", { get() { return 98122 }, set(_) { /*ignore*/ } }) : any ->Object.defineProperty : (o: any, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => any +>Object.defineProperty(exports, "rwAccessors", { get() { return 98122 }, set(_) { /*ignore*/ } }) : typeof import("tests/cases/conformance/jsdoc/mod1") +>Object.defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T >Object : ObjectConstructor ->defineProperty : (o: any, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => any +>defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T >exports : typeof import("tests/cases/conformance/jsdoc/mod1") >"rwAccessors" : "rwAccessors" >{ get() { return 98122 }, set(_) { /*ignore*/ } } : { get(): number; set(_: any): void; } @@ -214,10 +214,10 @@ Object.defineProperty(exports, "rwAccessors", { get() { return 98122 }, set(_) { >_ : any Object.defineProperty(exports, "readonlyAccessor", { get() { return 21.75 } }); ->Object.defineProperty(exports, "readonlyAccessor", { get() { return 21.75 } }) : any ->Object.defineProperty : (o: any, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => any +>Object.defineProperty(exports, "readonlyAccessor", { get() { return 21.75 } }) : typeof import("tests/cases/conformance/jsdoc/mod1") +>Object.defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T >Object : ObjectConstructor ->defineProperty : (o: any, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => any +>defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T >exports : typeof import("tests/cases/conformance/jsdoc/mod1") >"readonlyAccessor" : "readonlyAccessor" >{ get() { return 21.75 } } : { get(): number; } @@ -225,10 +225,10 @@ Object.defineProperty(exports, "readonlyAccessor", { get() { return 21.75 } }); >21.75 : 21.75 Object.defineProperty(exports, "setonlyAccessor", { ->Object.defineProperty(exports, "setonlyAccessor", { /** @param {string} str */ set(str) { this.rwAccessors = Number(str) }}) : any ->Object.defineProperty : (o: any, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => any +>Object.defineProperty(exports, "setonlyAccessor", { /** @param {string} str */ set(str) { this.rwAccessors = Number(str) }}) : typeof import("tests/cases/conformance/jsdoc/mod1") +>Object.defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T >Object : ObjectConstructor ->defineProperty : (o: any, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => any +>defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T >exports : typeof import("tests/cases/conformance/jsdoc/mod1") >"setonlyAccessor" : "setonlyAccessor" >{ /** @param {string} str */ set(str) { this.rwAccessors = Number(str) }} : { set(str: string): void; } @@ -251,10 +251,10 @@ Object.defineProperty(exports, "setonlyAccessor", { === tests/cases/conformance/jsdoc/mod2.js === Object.defineProperty(module.exports, "thing", { value: "yes", writable: true }); ->Object.defineProperty(module.exports, "thing", { value: "yes", writable: true }) : any ->Object.defineProperty : (o: any, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => any +>Object.defineProperty(module.exports, "thing", { value: "yes", writable: true }) : typeof module.exports +>Object.defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T >Object : ObjectConstructor ->defineProperty : (o: any, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => any +>defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T >module.exports : typeof module.exports >module : { exports: typeof module.exports; } >exports : typeof module.exports @@ -266,10 +266,10 @@ Object.defineProperty(module.exports, "thing", { value: "yes", writable: true }) >true : true Object.defineProperty(module.exports, "readonlyProp", { value: "Smith", writable: false }); ->Object.defineProperty(module.exports, "readonlyProp", { value: "Smith", writable: false }) : any ->Object.defineProperty : (o: any, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => any +>Object.defineProperty(module.exports, "readonlyProp", { value: "Smith", writable: false }) : typeof module.exports +>Object.defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T >Object : ObjectConstructor ->defineProperty : (o: any, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => any +>defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T >module.exports : typeof module.exports >module : { exports: typeof module.exports; } >exports : typeof module.exports @@ -281,10 +281,10 @@ Object.defineProperty(module.exports, "readonlyProp", { value: "Smith", writable >false : false Object.defineProperty(module.exports, "rwAccessors", { get() { return 98122 }, set(_) { /*ignore*/ } }); ->Object.defineProperty(module.exports, "rwAccessors", { get() { return 98122 }, set(_) { /*ignore*/ } }) : any ->Object.defineProperty : (o: any, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => any +>Object.defineProperty(module.exports, "rwAccessors", { get() { return 98122 }, set(_) { /*ignore*/ } }) : typeof module.exports +>Object.defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T >Object : ObjectConstructor ->defineProperty : (o: any, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => any +>defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T >module.exports : typeof module.exports >module : { exports: typeof module.exports; } >exports : typeof module.exports @@ -296,10 +296,10 @@ Object.defineProperty(module.exports, "rwAccessors", { get() { return 98122 }, s >_ : any Object.defineProperty(module.exports, "readonlyAccessor", { get() { return 21.75 } }); ->Object.defineProperty(module.exports, "readonlyAccessor", { get() { return 21.75 } }) : any ->Object.defineProperty : (o: any, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => any +>Object.defineProperty(module.exports, "readonlyAccessor", { get() { return 21.75 } }) : typeof module.exports +>Object.defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T >Object : ObjectConstructor ->defineProperty : (o: any, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => any +>defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T >module.exports : typeof module.exports >module : { exports: typeof module.exports; } >exports : typeof module.exports @@ -309,10 +309,10 @@ Object.defineProperty(module.exports, "readonlyAccessor", { get() { return 21.75 >21.75 : 21.75 Object.defineProperty(module.exports, "setonlyAccessor", { ->Object.defineProperty(module.exports, "setonlyAccessor", { /** @param {string} str */ set(str) { this.rwAccessors = Number(str) }}) : any ->Object.defineProperty : (o: any, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => any +>Object.defineProperty(module.exports, "setonlyAccessor", { /** @param {string} str */ set(str) { this.rwAccessors = Number(str) }}) : typeof module.exports +>Object.defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T >Object : ObjectConstructor ->defineProperty : (o: any, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => any +>defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T >module.exports : typeof module.exports >module : { exports: typeof module.exports; } >exports : typeof module.exports diff --git a/tests/baselines/reference/checkExportsObjectAssignPrototypeProperty.types b/tests/baselines/reference/checkExportsObjectAssignPrototypeProperty.types index 085f6cf008ef9..6ea6a5ff129b8 100644 --- a/tests/baselines/reference/checkExportsObjectAssignPrototypeProperty.types +++ b/tests/baselines/reference/checkExportsObjectAssignPrototypeProperty.types @@ -129,9 +129,9 @@ Person.prototype.describe = function () { }; Object.defineProperty(Person.prototype, "thing", { value: 42, writable: true }); >Object.defineProperty(Person.prototype, "thing", { value: 42, writable: true }) : any ->Object.defineProperty : (o: any, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => any +>Object.defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T >Object : ObjectConstructor ->defineProperty : (o: any, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => any +>defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T >Person.prototype : any >Person : typeof Person >prototype : any @@ -144,9 +144,9 @@ Object.defineProperty(Person.prototype, "thing", { value: 42, writable: true }); Object.defineProperty(Person.prototype, "readonlyProp", { value: "Smith", writable: false }); >Object.defineProperty(Person.prototype, "readonlyProp", { value: "Smith", writable: false }) : any ->Object.defineProperty : (o: any, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => any +>Object.defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T >Object : ObjectConstructor ->defineProperty : (o: any, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => any +>defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T >Person.prototype : any >Person : typeof Person >prototype : any @@ -159,9 +159,9 @@ Object.defineProperty(Person.prototype, "readonlyProp", { value: "Smith", writab Object.defineProperty(Person.prototype, "rwAccessors", { get() { return 98122 }, set(_) { /*ignore*/ } }); >Object.defineProperty(Person.prototype, "rwAccessors", { get() { return 98122 }, set(_) { /*ignore*/ } }) : any ->Object.defineProperty : (o: any, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => any +>Object.defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T >Object : ObjectConstructor ->defineProperty : (o: any, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => any +>defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T >Person.prototype : any >Person : typeof Person >prototype : any @@ -174,9 +174,9 @@ Object.defineProperty(Person.prototype, "rwAccessors", { get() { return 98122 }, Object.defineProperty(Person.prototype, "readonlyAccessor", { get() { return 21.75 } }); >Object.defineProperty(Person.prototype, "readonlyAccessor", { get() { return 21.75 } }) : any ->Object.defineProperty : (o: any, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => any +>Object.defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T >Object : ObjectConstructor ->defineProperty : (o: any, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => any +>defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T >Person.prototype : any >Person : typeof Person >prototype : any @@ -187,9 +187,9 @@ Object.defineProperty(Person.prototype, "readonlyAccessor", { get() { return 21. Object.defineProperty(Person.prototype, "setonlyAccessor", { >Object.defineProperty(Person.prototype, "setonlyAccessor", { /** @param {string} str */ set(str) { this.rwAccessors = Number(str) }}) : any ->Object.defineProperty : (o: any, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => any +>Object.defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T >Object : ObjectConstructor ->defineProperty : (o: any, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => any +>defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T >Person.prototype : any >Person : typeof Person >prototype : any diff --git a/tests/baselines/reference/checkObjectDefineProperty.types b/tests/baselines/reference/checkObjectDefineProperty.types index 79467e4dc2ede..05f8b200c51f8 100644 --- a/tests/baselines/reference/checkObjectDefineProperty.types +++ b/tests/baselines/reference/checkObjectDefineProperty.types @@ -88,10 +88,10 @@ const x = {}; >{} : {} Object.defineProperty(x, "name", { value: "Charles", writable: true }); ->Object.defineProperty(x, "name", { value: "Charles", writable: true }) : any ->Object.defineProperty : (o: any, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => any +>Object.defineProperty(x, "name", { value: "Charles", writable: true }) : typeof x +>Object.defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T >Object : ObjectConstructor ->defineProperty : (o: any, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => any +>defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T >x : typeof x >"name" : "name" >{ value: "Charles", writable: true } : { value: string; writable: true; } @@ -101,10 +101,10 @@ Object.defineProperty(x, "name", { value: "Charles", writable: true }); >true : true Object.defineProperty(x, "middleInit", { value: "H" }); ->Object.defineProperty(x, "middleInit", { value: "H" }) : any ->Object.defineProperty : (o: any, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => any +>Object.defineProperty(x, "middleInit", { value: "H" }) : typeof x +>Object.defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T >Object : ObjectConstructor ->defineProperty : (o: any, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => any +>defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T >x : typeof x >"middleInit" : "middleInit" >{ value: "H" } : { value: string; } @@ -112,10 +112,10 @@ Object.defineProperty(x, "middleInit", { value: "H" }); >"H" : "H" Object.defineProperty(x, "lastName", { value: "Smith", writable: false }); ->Object.defineProperty(x, "lastName", { value: "Smith", writable: false }) : any ->Object.defineProperty : (o: any, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => any +>Object.defineProperty(x, "lastName", { value: "Smith", writable: false }) : typeof x +>Object.defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T >Object : ObjectConstructor ->defineProperty : (o: any, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => any +>defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T >x : typeof x >"lastName" : "lastName" >{ value: "Smith", writable: false } : { value: string; writable: false; } @@ -125,10 +125,10 @@ Object.defineProperty(x, "lastName", { value: "Smith", writable: false }); >false : false Object.defineProperty(x, "zip", { get() { return 98122 }, set(_) { /*ignore*/ } }); ->Object.defineProperty(x, "zip", { get() { return 98122 }, set(_) { /*ignore*/ } }) : any ->Object.defineProperty : (o: any, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => any +>Object.defineProperty(x, "zip", { get() { return 98122 }, set(_) { /*ignore*/ } }) : typeof x +>Object.defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T >Object : ObjectConstructor ->defineProperty : (o: any, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => any +>defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T >x : typeof x >"zip" : "zip" >{ get() { return 98122 }, set(_) { /*ignore*/ } } : { get(): number; set(_: any): void; } @@ -138,10 +138,10 @@ Object.defineProperty(x, "zip", { get() { return 98122 }, set(_) { /*ignore*/ } >_ : any Object.defineProperty(x, "houseNumber", { get() { return 21.75 } }); ->Object.defineProperty(x, "houseNumber", { get() { return 21.75 } }) : any ->Object.defineProperty : (o: any, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => any +>Object.defineProperty(x, "houseNumber", { get() { return 21.75 } }) : typeof x +>Object.defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T >Object : ObjectConstructor ->defineProperty : (o: any, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => any +>defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T >x : typeof x >"houseNumber" : "houseNumber" >{ get() { return 21.75 } } : { get(): number; } @@ -149,10 +149,10 @@ Object.defineProperty(x, "houseNumber", { get() { return 21.75 } }); >21.75 : 21.75 Object.defineProperty(x, "zipStr", { ->Object.defineProperty(x, "zipStr", { /** @param {string} str */ set(str) { this.zip = Number(str) }}) : any ->Object.defineProperty : (o: any, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => any +>Object.defineProperty(x, "zipStr", { /** @param {string} str */ set(str) { this.zip = Number(str) }}) : typeof x +>Object.defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T >Object : ObjectConstructor ->defineProperty : (o: any, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => any +>defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T >x : typeof x >"zipStr" : "zipStr" >{ /** @param {string} str */ set(str) { this.zip = Number(str) }} : { set(str: string): void; } diff --git a/tests/baselines/reference/checkOtherObjectAssignProperty.types b/tests/baselines/reference/checkOtherObjectAssignProperty.types index 83204a02ffe64..180ea63989945 100644 --- a/tests/baselines/reference/checkOtherObjectAssignProperty.types +++ b/tests/baselines/reference/checkOtherObjectAssignProperty.types @@ -88,10 +88,10 @@ const obj = { value: 42, writable: true }; >true : true Object.defineProperty(exports, "thing", obj); ->Object.defineProperty(exports, "thing", obj) : any ->Object.defineProperty : (o: any, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => any +>Object.defineProperty(exports, "thing", obj) : typeof import("tests/cases/conformance/jsdoc/mod1") +>Object.defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T >Object : ObjectConstructor ->defineProperty : (o: any, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => any +>defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T >exports : typeof import("tests/cases/conformance/jsdoc/mod1") >"thing" : "thing" >obj : { value: number; writable: boolean; } @@ -105,10 +105,10 @@ let str = /** @type {string} */("other"); >"other" : "other" Object.defineProperty(exports, str, { value: 42, writable: true }); ->Object.defineProperty(exports, str, { value: 42, writable: true }) : any ->Object.defineProperty : (o: any, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => any +>Object.defineProperty(exports, str, { value: 42, writable: true }) : typeof import("tests/cases/conformance/jsdoc/mod1") +>Object.defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T >Object : ObjectConstructor ->defineProperty : (o: any, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => any +>defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T >exports : typeof import("tests/cases/conformance/jsdoc/mod1") >str : string >{ value: 42, writable: true } : { value: number; writable: true; } @@ -122,10 +122,10 @@ const propName = "prop" >"prop" : "prop" Object.defineProperty(exports, propName, { value: 42, writable: true }); ->Object.defineProperty(exports, propName, { value: 42, writable: true }) : any ->Object.defineProperty : (o: any, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => any +>Object.defineProperty(exports, propName, { value: 42, writable: true }) : typeof import("tests/cases/conformance/jsdoc/mod1") +>Object.defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T >Object : ObjectConstructor ->defineProperty : (o: any, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => any +>defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T >exports : typeof import("tests/cases/conformance/jsdoc/mod1") >propName : "prop" >{ value: 42, writable: true } : { value: number; writable: true; } @@ -136,19 +136,19 @@ Object.defineProperty(exports, propName, { value: 42, writable: true }); Object.defineProperty(exports, "bad1", { }); ->Object.defineProperty(exports, "bad1", { }) : any ->Object.defineProperty : (o: any, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => any +>Object.defineProperty(exports, "bad1", { }) : typeof import("tests/cases/conformance/jsdoc/mod1") +>Object.defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T >Object : ObjectConstructor ->defineProperty : (o: any, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => any +>defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T >exports : typeof import("tests/cases/conformance/jsdoc/mod1") >"bad1" : "bad1" >{ } : {} Object.defineProperty(exports, "bad2", { get() { return 12 }, value: "no" }); ->Object.defineProperty(exports, "bad2", { get() { return 12 }, value: "no" }) : any ->Object.defineProperty : (o: any, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => any +>Object.defineProperty(exports, "bad2", { get() { return 12 }, value: "no" }) : typeof import("tests/cases/conformance/jsdoc/mod1") +>Object.defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T >Object : ObjectConstructor ->defineProperty : (o: any, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => any +>defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T >exports : typeof import("tests/cases/conformance/jsdoc/mod1") >"bad2" : "bad2" >{ get() { return 12 }, value: "no" } : { get(): number; value: string; } @@ -158,10 +158,10 @@ Object.defineProperty(exports, "bad2", { get() { return 12 }, value: "no" }); >"no" : "no" Object.defineProperty(exports, "bad3", { writable: true }); ->Object.defineProperty(exports, "bad3", { writable: true }) : any ->Object.defineProperty : (o: any, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => any +>Object.defineProperty(exports, "bad3", { writable: true }) : typeof import("tests/cases/conformance/jsdoc/mod1") +>Object.defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T >Object : ObjectConstructor ->defineProperty : (o: any, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => any +>defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T >exports : typeof import("tests/cases/conformance/jsdoc/mod1") >"bad3" : "bad3" >{ writable: true } : { writable: true; } diff --git a/tests/baselines/reference/ensureNoCrashExportAssignmentDefineProperrtyPotentialMerge.types b/tests/baselines/reference/ensureNoCrashExportAssignmentDefineProperrtyPotentialMerge.types index eb25a6fbbef45..c566d1897b08d 100644 --- a/tests/baselines/reference/ensureNoCrashExportAssignmentDefineProperrtyPotentialMerge.types +++ b/tests/baselines/reference/ensureNoCrashExportAssignmentDefineProperrtyPotentialMerge.types @@ -13,10 +13,10 @@ module.exports = 12; >12 : 12 Object.defineProperty(module, "exports", { value: "oh no" }); ->Object.defineProperty(module, "exports", { value: "oh no" }) : any ->Object.defineProperty : (o: any, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => any +>Object.defineProperty(module, "exports", { value: "oh no" }) : typeof module +>Object.defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T >Object : ObjectConstructor ->defineProperty : (o: any, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => any +>defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T >module : typeof module >"exports" : "exports" >{ value: "oh no" } : { value: string; } @@ -58,10 +58,10 @@ B.NS = require("./namespacey"); >"./namespacey" : "./namespacey" Object.defineProperty(B, "NS", { value: "why though", writable: true }); ->Object.defineProperty(B, "NS", { value: "why though", writable: true }) : any ->Object.defineProperty : (o: any, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => any +>Object.defineProperty(B, "NS", { value: "why though", writable: true }) : typeof B +>Object.defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T >Object : ObjectConstructor ->defineProperty : (o: any, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => any +>defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T >B : typeof B >"NS" : "NS" >{ value: "why though", writable: true } : { value: string; writable: true; } diff --git a/tests/baselines/reference/esNextWeakRefs_IterableWeakMap.types b/tests/baselines/reference/esNextWeakRefs_IterableWeakMap.types index 662b7437b03a5..79e54575127f7 100644 --- a/tests/baselines/reference/esNextWeakRefs_IterableWeakMap.types +++ b/tests/baselines/reference/esNextWeakRefs_IterableWeakMap.types @@ -306,10 +306,10 @@ export class IterableWeakMap implements WeakMap { } Object.defineProperties(IterableWeakMap.prototype, { ->Object.defineProperties(IterableWeakMap.prototype, { [Symbol.iterator]: { configurable: true, enumerable: false, writable: true, value: Object.getOwnPropertyDescriptor( IterableWeakMap.prototype, "entries", )!.value, }, [Symbol.toStringTag]: { configurable: true, enumerable: false, writable: false, value: "IterableWeakMap", },}) : any ->Object.defineProperties : (o: any, properties: PropertyDescriptorMap & ThisType) => any +>Object.defineProperties(IterableWeakMap.prototype, { [Symbol.iterator]: { configurable: true, enumerable: false, writable: true, value: Object.getOwnPropertyDescriptor( IterableWeakMap.prototype, "entries", )!.value, }, [Symbol.toStringTag]: { configurable: true, enumerable: false, writable: false, value: "IterableWeakMap", },}) : IterableWeakMap +>Object.defineProperties : (o: T, properties: PropertyDescriptorMap & ThisType) => T >Object : ObjectConstructor ->defineProperties : (o: any, properties: PropertyDescriptorMap & ThisType) => any +>defineProperties : (o: T, properties: PropertyDescriptorMap & ThisType) => T >IterableWeakMap.prototype : IterableWeakMap >IterableWeakMap : typeof IterableWeakMap >prototype : IterableWeakMap diff --git a/tests/baselines/reference/excessPropertyCheckWithEmptyObject.types b/tests/baselines/reference/excessPropertyCheckWithEmptyObject.types index 3893ea1999e27..3c748f7fd923b 100644 --- a/tests/baselines/reference/excessPropertyCheckWithEmptyObject.types +++ b/tests/baselines/reference/excessPropertyCheckWithEmptyObject.types @@ -3,10 +3,10 @@ // Excess property error expected here Object.defineProperty(window, "prop", { value: "v1.0.0", readonly: false }); ->Object.defineProperty(window, "prop", { value: "v1.0.0", readonly: false }) : any ->Object.defineProperty : (o: any, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => any +>Object.defineProperty(window, "prop", { value: "v1.0.0", readonly: false }) : Window & typeof globalThis +>Object.defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T >Object : ObjectConstructor ->defineProperty : (o: any, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => any +>defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T >window : Window & typeof globalThis >"prop" : "prop" >{ value: "v1.0.0", readonly: false } : { value: string; readonly: boolean; } diff --git a/tests/baselines/reference/getterSetterNonAccessor.types b/tests/baselines/reference/getterSetterNonAccessor.types index 1d9484f9bc9a6..5f9a658b575f0 100644 --- a/tests/baselines/reference/getterSetterNonAccessor.types +++ b/tests/baselines/reference/getterSetterNonAccessor.types @@ -8,10 +8,10 @@ function setFunc(v){} >v : any Object.defineProperty({}, "0", ({ ->Object.defineProperty({}, "0", ({ get: getFunc, set: setFunc, configurable: true })) : any ->Object.defineProperty : (o: any, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => any +>Object.defineProperty({}, "0", ({ get: getFunc, set: setFunc, configurable: true })) : {} +>Object.defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T >Object : ObjectConstructor ->defineProperty : (o: any, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => any +>defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T >{} : {} >"0" : "0" >({ get: getFunc, set: setFunc, configurable: true }) : PropertyDescriptor diff --git a/tests/baselines/reference/importAliasModuleExports.types b/tests/baselines/reference/importAliasModuleExports.types index 795b161a34890..2067e8b8d74e4 100644 --- a/tests/baselines/reference/importAliasModuleExports.types +++ b/tests/baselines/reference/importAliasModuleExports.types @@ -41,10 +41,10 @@ A.prototype.func = function() { this._func = 0; } >0 : 0 Object.defineProperty(A.prototype, "def", { value: 0 }); ->Object.defineProperty(A.prototype, "def", { value: 0 }) : any ->Object.defineProperty : (o: any, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => any +>Object.defineProperty(A.prototype, "def", { value: 0 }) : A +>Object.defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T >Object : ObjectConstructor ->defineProperty : (o: any, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => any +>defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T >A.prototype : A >A : typeof A >prototype : A diff --git a/tests/baselines/reference/javascriptDefinePropertyPrototypeNonConstructor.types b/tests/baselines/reference/javascriptDefinePropertyPrototypeNonConstructor.types index b08c924117a3b..7dbd38d69dffa 100644 --- a/tests/baselines/reference/javascriptDefinePropertyPrototypeNonConstructor.types +++ b/tests/baselines/reference/javascriptDefinePropertyPrototypeNonConstructor.types @@ -5,9 +5,9 @@ function Graphic() { Object.defineProperty(Graphic.prototype, "instance", { >Object.defineProperty(Graphic.prototype, "instance", { get: function() { return this; }}) : any ->Object.defineProperty : (o: any, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => any +>Object.defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T >Object : ObjectConstructor ->defineProperty : (o: any, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => any +>defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T >Graphic.prototype : any >Graphic : typeof Graphic >prototype : any diff --git a/tests/baselines/reference/jsCheckObjectDefineThisNoCrash.types b/tests/baselines/reference/jsCheckObjectDefineThisNoCrash.types index 626a1aec6216b..e175b0527772f 100644 --- a/tests/baselines/reference/jsCheckObjectDefineThisNoCrash.types +++ b/tests/baselines/reference/jsCheckObjectDefineThisNoCrash.types @@ -5,10 +5,10 @@ class C { constructor() { // Neither of the following should be recognized as declarations yet Object.defineProperty(this, "_prop", { value: {} }); ->Object.defineProperty(this, "_prop", { value: {} }) : any ->Object.defineProperty : (o: any, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => any +>Object.defineProperty(this, "_prop", { value: {} }) : this +>Object.defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T >Object : ObjectConstructor ->defineProperty : (o: any, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => any +>defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T >this : this >"_prop" : "_prop" >{ value: {} } : { value: {}; } @@ -17,9 +17,9 @@ class C { Object.defineProperty(this._prop, "num", { value: 12 }); >Object.defineProperty(this._prop, "num", { value: 12 }) : any ->Object.defineProperty : (o: any, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => any +>Object.defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T >Object : ObjectConstructor ->defineProperty : (o: any, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => any +>defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T >this._prop : any >this : this >_prop : any diff --git a/tests/baselines/reference/jsDeclarationsExportDefinePropertyEmit.types b/tests/baselines/reference/jsDeclarationsExportDefinePropertyEmit.types index ca0f272f55a52..fc664ec5d19a6 100644 --- a/tests/baselines/reference/jsDeclarationsExportDefinePropertyEmit.types +++ b/tests/baselines/reference/jsDeclarationsExportDefinePropertyEmit.types @@ -1,9 +1,9 @@ === tests/cases/conformance/jsdoc/declarations/index.js === Object.defineProperty(module.exports, "a", { value: function a() {} }); ->Object.defineProperty(module.exports, "a", { value: function a() {} }) : any ->Object.defineProperty : (o: any, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => any +>Object.defineProperty(module.exports, "a", { value: function a() {} }) : typeof module.exports +>Object.defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T >Object : ObjectConstructor ->defineProperty : (o: any, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => any +>defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T >module.exports : typeof module.exports >module : { exports: typeof module.exports; } >exports : typeof module.exports @@ -14,10 +14,10 @@ Object.defineProperty(module.exports, "a", { value: function a() {} }); >a : () => void Object.defineProperty(module.exports, "b", { value: function b() {} }); ->Object.defineProperty(module.exports, "b", { value: function b() {} }) : any ->Object.defineProperty : (o: any, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => any +>Object.defineProperty(module.exports, "b", { value: function b() {} }) : typeof module.exports +>Object.defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T >Object : ObjectConstructor ->defineProperty : (o: any, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => any +>defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T >module.exports : typeof module.exports >module : { exports: typeof module.exports; } >exports : typeof module.exports @@ -28,10 +28,10 @@ Object.defineProperty(module.exports, "b", { value: function b() {} }); >b : () => void Object.defineProperty(module.exports.b, "cat", { value: "cat" }); ->Object.defineProperty(module.exports.b, "cat", { value: "cat" }) : any ->Object.defineProperty : (o: any, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => any +>Object.defineProperty(module.exports.b, "cat", { value: "cat" }) : () => void +>Object.defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T >Object : ObjectConstructor ->defineProperty : (o: any, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => any +>defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T >module.exports.b : () => void >module.exports : typeof module.exports >module : { exports: typeof module.exports; } @@ -55,10 +55,10 @@ function d(a, b) { return /** @type {*} */(null); } >null : null Object.defineProperty(module.exports, "d", { value: d }); ->Object.defineProperty(module.exports, "d", { value: d }) : any ->Object.defineProperty : (o: any, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => any +>Object.defineProperty(module.exports, "d", { value: d }) : typeof module.exports +>Object.defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T >Object : ObjectConstructor ->defineProperty : (o: any, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => any +>defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T >module.exports : typeof module.exports >module : { exports: typeof module.exports; } >exports : typeof module.exports @@ -82,10 +82,10 @@ function e(a, b) { return /** @type {*} */(null); } >null : null Object.defineProperty(module.exports, "e", { value: e }); ->Object.defineProperty(module.exports, "e", { value: e }) : any ->Object.defineProperty : (o: any, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => any +>Object.defineProperty(module.exports, "e", { value: e }) : typeof module.exports +>Object.defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T >Object : ObjectConstructor ->defineProperty : (o: any, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => any +>defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T >module.exports : typeof module.exports >module : { exports: typeof module.exports; } >exports : typeof module.exports @@ -106,10 +106,10 @@ function f(a) { >a : T } Object.defineProperty(module.exports, "f", { value: f }); ->Object.defineProperty(module.exports, "f", { value: f }) : any ->Object.defineProperty : (o: any, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => any +>Object.defineProperty(module.exports, "f", { value: f }) : typeof module.exports +>Object.defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T >Object : ObjectConstructor ->defineProperty : (o: any, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => any +>defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T >module.exports : typeof module.exports >module : { exports: typeof module.exports; } >exports : typeof module.exports @@ -119,10 +119,10 @@ Object.defineProperty(module.exports, "f", { value: f }); >f : (a: T) => T Object.defineProperty(module.exports.f, "self", { value: module.exports.f }); ->Object.defineProperty(module.exports.f, "self", { value: module.exports.f }) : any ->Object.defineProperty : (o: any, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => any +>Object.defineProperty(module.exports.f, "self", { value: module.exports.f }) : (a: T) => T +>Object.defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T >Object : ObjectConstructor ->defineProperty : (o: any, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => any +>defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T >module.exports.f : (a: T) => T >module.exports : typeof module.exports >module : { exports: typeof module.exports; } @@ -157,10 +157,10 @@ function g(a, b) { >y : () => void } Object.defineProperty(module.exports, "g", { value: g }); ->Object.defineProperty(module.exports, "g", { value: g }) : any ->Object.defineProperty : (o: any, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => any +>Object.defineProperty(module.exports, "g", { value: g }) : typeof module.exports +>Object.defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T >Object : ObjectConstructor ->defineProperty : (o: any, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => any +>defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T >module.exports : typeof module.exports >module : { exports: typeof module.exports; } >exports : typeof module.exports @@ -190,10 +190,10 @@ function hh(a, b) { >y : () => void } Object.defineProperty(module.exports, "h", { value: hh }); ->Object.defineProperty(module.exports, "h", { value: hh }) : any ->Object.defineProperty : (o: any, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => any +>Object.defineProperty(module.exports, "h", { value: hh }) : typeof module.exports +>Object.defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T >Object : ObjectConstructor ->defineProperty : (o: any, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => any +>defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T >module.exports : typeof module.exports >module : { exports: typeof module.exports; } >exports : typeof module.exports @@ -203,10 +203,10 @@ Object.defineProperty(module.exports, "h", { value: hh }); >hh : (a: { x: string; }, b: { y: () => void; }) => void Object.defineProperty(module.exports, "i", { value: function i(){} }); ->Object.defineProperty(module.exports, "i", { value: function i(){} }) : any ->Object.defineProperty : (o: any, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => any +>Object.defineProperty(module.exports, "i", { value: function i(){} }) : typeof module.exports +>Object.defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T >Object : ObjectConstructor ->defineProperty : (o: any, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => any +>defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T >module.exports : typeof module.exports >module : { exports: typeof module.exports; } >exports : typeof module.exports @@ -217,10 +217,10 @@ Object.defineProperty(module.exports, "i", { value: function i(){} }); >i : () => void Object.defineProperty(module.exports, "ii", { value: module.exports.i }); ->Object.defineProperty(module.exports, "ii", { value: module.exports.i }) : any ->Object.defineProperty : (o: any, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => any +>Object.defineProperty(module.exports, "ii", { value: module.exports.i }) : typeof module.exports +>Object.defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T >Object : ObjectConstructor ->defineProperty : (o: any, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => any +>defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T >module.exports : typeof module.exports >module : { exports: typeof module.exports; } >exports : typeof module.exports @@ -235,10 +235,10 @@ Object.defineProperty(module.exports, "ii", { value: module.exports.i }); // note that this last one doesn't make much sense in cjs, since exports aren't hoisted bindings Object.defineProperty(module.exports, "jj", { value: module.exports.j }); ->Object.defineProperty(module.exports, "jj", { value: module.exports.j }) : any ->Object.defineProperty : (o: any, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => any +>Object.defineProperty(module.exports, "jj", { value: module.exports.j }) : typeof module.exports +>Object.defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T >Object : ObjectConstructor ->defineProperty : (o: any, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => any +>defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T >module.exports : typeof module.exports >module : { exports: typeof module.exports; } >exports : typeof module.exports @@ -252,10 +252,10 @@ Object.defineProperty(module.exports, "jj", { value: module.exports.j }); >j : () => void Object.defineProperty(module.exports, "j", { value: function j() {} }); ->Object.defineProperty(module.exports, "j", { value: function j() {} }) : any ->Object.defineProperty : (o: any, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => any +>Object.defineProperty(module.exports, "j", { value: function j() {} }) : typeof module.exports +>Object.defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T >Object : ObjectConstructor ->defineProperty : (o: any, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => any +>defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T >module.exports : typeof module.exports >module : { exports: typeof module.exports; } >exports : typeof module.exports diff --git a/tests/baselines/reference/jsDeclarationsGetterSetter.types b/tests/baselines/reference/jsDeclarationsGetterSetter.types index 42c3e08e13611..146600cc4151e 100644 --- a/tests/baselines/reference/jsDeclarationsGetterSetter.types +++ b/tests/baselines/reference/jsDeclarationsGetterSetter.types @@ -41,10 +41,10 @@ export class D {} >D : D Object.defineProperty(D.prototype, "x", { ->Object.defineProperty(D.prototype, "x", { get() { return 12; }}) : any ->Object.defineProperty : (o: any, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => any +>Object.defineProperty(D.prototype, "x", { get() { return 12; }}) : D +>Object.defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T >Object : ObjectConstructor ->defineProperty : (o: any, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => any +>defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T >D.prototype : D >D : typeof D >prototype : D @@ -63,10 +63,10 @@ export class E {} >E : E Object.defineProperty(E.prototype, "x", { ->Object.defineProperty(E.prototype, "x", { /** * @param {number} _arg */ set(_arg) {}}) : any ->Object.defineProperty : (o: any, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => any +>Object.defineProperty(E.prototype, "x", { /** * @param {number} _arg */ set(_arg) {}}) : E +>Object.defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T >Object : ObjectConstructor ->defineProperty : (o: any, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => any +>defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T >E.prototype : E >E : typeof E >prototype : E @@ -86,10 +86,10 @@ export class F {} >F : F Object.defineProperty(F.prototype, "x", { ->Object.defineProperty(F.prototype, "x", { get() { return 12; }, /** * @param {number} _arg */ set(_arg) {}}) : any ->Object.defineProperty : (o: any, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => any +>Object.defineProperty(F.prototype, "x", { get() { return 12; }, /** * @param {number} _arg */ set(_arg) {}}) : F +>Object.defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T >Object : ObjectConstructor ->defineProperty : (o: any, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => any +>defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T >F.prototype : F >F : typeof F >prototype : F diff --git a/tests/baselines/reference/jsExpandoObjectDefineProperty.types b/tests/baselines/reference/jsExpandoObjectDefineProperty.types index 4192b27425e4d..fb25ede2da462 100644 --- a/tests/baselines/reference/jsExpandoObjectDefineProperty.types +++ b/tests/baselines/reference/jsExpandoObjectDefineProperty.types @@ -4,10 +4,10 @@ var chrome = {} >{} : {} Object.defineProperty(chrome, 'devtools', { value: {}, enumerable: true }) ->Object.defineProperty(chrome, 'devtools', { value: {}, enumerable: true }) : any ->Object.defineProperty : (o: any, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => any +>Object.defineProperty(chrome, 'devtools', { value: {}, enumerable: true }) : typeof chrome +>Object.defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T >Object : ObjectConstructor ->defineProperty : (o: any, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => any +>defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T >chrome : typeof chrome >'devtools' : "devtools" >{ value: {}, enumerable: true } : { value: {}; enumerable: true; } diff --git a/tests/baselines/reference/jsFileESModuleWithEnumTag.types b/tests/baselines/reference/jsFileESModuleWithEnumTag.types index bc66add7f507b..4ecc2d0fdd6a5 100644 --- a/tests/baselines/reference/jsFileESModuleWithEnumTag.types +++ b/tests/baselines/reference/jsFileESModuleWithEnumTag.types @@ -33,10 +33,10 @@ ChangeDetectionStrategy[ChangeDetectionStrategy.Default] = 'Default'; >'Default' : "Default" Object.defineProperty(ChangeDetectionStrategy, "aField", {value: 42}); ->Object.defineProperty(ChangeDetectionStrategy, "aField", {value: 42}) : any ->Object.defineProperty : (o: any, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => any +>Object.defineProperty(ChangeDetectionStrategy, "aField", {value: 42}) : { OnPush: number; Default: number; } +>Object.defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T >Object : ObjectConstructor ->defineProperty : (o: any, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => any +>defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T >ChangeDetectionStrategy : { OnPush: number; Default: number; } >"aField" : "aField" >{value: 42} : { value: number; } diff --git a/tests/baselines/reference/lateBoundAssignmentDeclarationSupport3.types b/tests/baselines/reference/lateBoundAssignmentDeclarationSupport3.types index 5909bdbaa63f4..7f6c8d2c42ada 100644 --- a/tests/baselines/reference/lateBoundAssignmentDeclarationSupport3.types +++ b/tests/baselines/reference/lateBoundAssignmentDeclarationSupport3.types @@ -31,10 +31,10 @@ const _str = "my-fake-sym"; >"my-fake-sym" : "my-fake-sym" Object.defineProperty(module.exports, _sym, { value: "ok" }); ->Object.defineProperty(module.exports, _sym, { value: "ok" }) : any ->Object.defineProperty : (o: any, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => any +>Object.defineProperty(module.exports, _sym, { value: "ok" }) : typeof module.exports +>Object.defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T >Object : ObjectConstructor ->defineProperty : (o: any, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => any +>defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T >module.exports : typeof module.exports >module : { exports: typeof module.exports; } >exports : typeof module.exports @@ -44,10 +44,10 @@ Object.defineProperty(module.exports, _sym, { value: "ok" }); >"ok" : "ok" Object.defineProperty(module.exports, _str, { value: "ok" }); ->Object.defineProperty(module.exports, _str, { value: "ok" }) : any ->Object.defineProperty : (o: any, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => any +>Object.defineProperty(module.exports, _str, { value: "ok" }) : typeof module.exports +>Object.defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T >Object : ObjectConstructor ->defineProperty : (o: any, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => any +>defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T >module.exports : typeof module.exports >module : { exports: typeof module.exports; } >exports : typeof module.exports diff --git a/tests/baselines/reference/lateBoundAssignmentDeclarationSupport6.types b/tests/baselines/reference/lateBoundAssignmentDeclarationSupport6.types index 31b00f9cd7719..754ff5f67dbfe 100644 --- a/tests/baselines/reference/lateBoundAssignmentDeclarationSupport6.types +++ b/tests/baselines/reference/lateBoundAssignmentDeclarationSupport6.types @@ -51,9 +51,9 @@ F.prototype.defsAClass = true; Object.defineProperty(F.prototype, _str, {value: "ok"}); >Object.defineProperty(F.prototype, _str, {value: "ok"}) : any ->Object.defineProperty : (o: any, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => any +>Object.defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T >Object : ObjectConstructor ->defineProperty : (o: any, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => any +>defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T >F.prototype : any >F : typeof F >prototype : any @@ -64,9 +64,9 @@ Object.defineProperty(F.prototype, _str, {value: "ok"}); Object.defineProperty(F.prototype, _sym, {value: "ok"}); >Object.defineProperty(F.prototype, _sym, {value: "ok"}) : any ->Object.defineProperty : (o: any, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => any +>Object.defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T >Object : ObjectConstructor ->defineProperty : (o: any, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => any +>defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T >F.prototype : any >F : typeof F >prototype : any diff --git a/tests/baselines/reference/objectLitGetterSetter.types b/tests/baselines/reference/objectLitGetterSetter.types index 8484a6d26dc89..54c587890f8ac 100644 --- a/tests/baselines/reference/objectLitGetterSetter.types +++ b/tests/baselines/reference/objectLitGetterSetter.types @@ -4,10 +4,10 @@ >{} : {} Object.defineProperty(obj, "accProperty", ({ ->Object.defineProperty(obj, "accProperty", ({ get: function () { eval("public = 1;"); return 11; }, set: function (v) { } })) : any ->Object.defineProperty : (o: any, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => any +>Object.defineProperty(obj, "accProperty", ({ get: function () { eval("public = 1;"); return 11; }, set: function (v) { } })) : {} +>Object.defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T >Object : ObjectConstructor ->defineProperty : (o: any, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => any +>defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T >obj : {} >"accProperty" : "accProperty" >({ get: function () { eval("public = 1;"); return 11; }, set: function (v) { } }) : PropertyDescriptor diff --git a/tests/baselines/reference/parserUsingConstructorAsIdentifier.types b/tests/baselines/reference/parserUsingConstructorAsIdentifier.types index 2a330b89a9026..0034fa0e136e5 100644 --- a/tests/baselines/reference/parserUsingConstructorAsIdentifier.types +++ b/tests/baselines/reference/parserUsingConstructorAsIdentifier.types @@ -90,9 +90,9 @@ Object.defineProperty(constructor.prototype, "constructor", { value: constructor, writable: true, configurable: true, enumerable: true }); >Object.defineProperty(constructor.prototype, "constructor", { value: constructor, writable: true, configurable: true, enumerable: true }) : any ->Object.defineProperty : (o: any, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => any +>Object.defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T >Object : ObjectConstructor ->defineProperty : (o: any, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => any +>defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T >constructor.prototype : any >constructor : any >prototype : any diff --git a/tests/lib/lib.d.ts b/tests/lib/lib.d.ts index ad23d2d322b4b..7f5cbf72e724d 100644 --- a/tests/lib/lib.d.ts +++ b/tests/lib/lib.d.ts @@ -178,14 +178,14 @@ interface ObjectConstructor { * @param p The property name. * @param attributes Descriptor for the property. It can be for a data property or an accessor property. */ - defineProperty(o: any, p: string, attributes: PropertyDescriptor): any; + defineProperty(o: T, p: string, attributes: PropertyDescriptor): T; /** * Adds one or more properties to an object, and/or modifies attributes of existing properties. * @param o Object on which to add or modify the properties. This can be a native JavaScript object or a DOM object. * @param properties JavaScript object that contains one or more descriptor objects. Each descriptor object describes a data property or an accessor property. */ - defineProperties(o: any, properties: PropertyDescriptorMap): any; + defineProperties(o: T, properties: PropertyDescriptorMap): T; /** * Prevents the modification of attributes of existing properties, and prevents the addition of new properties.