Skip to content

Commit ed13dde

Browse files
authored
Merge pull request #13505 from Microsoft/fix13504
Emit 'object' type in declaration emitter
2 parents 3b0f2c1 + 061175e commit ed13dde

File tree

9 files changed

+44
-0
lines changed

9 files changed

+44
-0
lines changed

src/compiler/declarationEmitter.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -390,6 +390,7 @@ namespace ts {
390390
case SyntaxKind.StringKeyword:
391391
case SyntaxKind.NumberKeyword:
392392
case SyntaxKind.BooleanKeyword:
393+
case SyntaxKind.ObjectKeyword:
393394
case SyntaxKind.SymbolKeyword:
394395
case SyntaxKind.VoidKeyword:
395396
case SyntaxKind.UndefinedKeyword:

tests/baselines/reference/nonPrimitiveAsProperty.js

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,3 +11,11 @@ var b: WithNonPrimitive = {foo: "bar"}; // expect error
1111
//// [nonPrimitiveAsProperty.js]
1212
var a = { foo: { bar: "bar" } };
1313
var b = { foo: "bar" }; // expect error
14+
15+
16+
//// [nonPrimitiveAsProperty.d.ts]
17+
interface WithNonPrimitive {
18+
foo: object;
19+
}
20+
declare var a: WithNonPrimitive;
21+
declare var b: WithNonPrimitive;

tests/baselines/reference/nonPrimitiveInFunction.js

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,3 +34,11 @@ function returnError() {
3434
var ret = 123;
3535
return ret; // expect error
3636
}
37+
38+
39+
//// [nonPrimitiveInFunction.d.ts]
40+
declare function takeObject(o: object): void;
41+
declare function returnObject(): object;
42+
declare var nonPrimitive: object;
43+
declare var primitive: boolean;
44+
declare function returnError(): object;

tests/baselines/reference/nonPrimitiveInGeneric.js

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,3 +73,21 @@ var x; // error
7373
var y; // ok
7474
var z; // ok
7575
var u; // ok
76+
77+
78+
//// [nonPrimitiveInGeneric.d.ts]
79+
declare function generic<T>(t: T): void;
80+
declare var a: {};
81+
declare var b: string;
82+
declare function bound<T extends object>(t: T): void;
83+
declare function bound2<T extends object>(): void;
84+
declare function bound3<T extends {}>(t: T): void;
85+
interface Proxy<T extends object> {
86+
}
87+
declare var x: Proxy<number>;
88+
declare var y: Proxy<null>;
89+
declare var z: Proxy<undefined>;
90+
interface Blah {
91+
foo: number;
92+
}
93+
declare var u: Proxy<Blah>;

tests/baselines/reference/nonPrimitiveUnionIntersection.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,3 +10,8 @@ var a = ""; // error
1010
var b = ""; // ok
1111
a = b; // error
1212
b = a; // ok
13+
14+
15+
//// [nonPrimitiveUnionIntersection.d.ts]
16+
declare var a: object & string;
17+
declare var b: object | string;

tests/cases/conformance/types/nonPrimitive/nonPrimitiveAsProperty.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
// @declaration: true
12
interface WithNonPrimitive {
23
foo: object
34
}

tests/cases/conformance/types/nonPrimitive/nonPrimitiveInFunction.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
// @declaration: true
12
function takeObject(o: object) {}
23
function returnObject(): object {
34
return {};

tests/cases/conformance/types/nonPrimitive/nonPrimitiveInGeneric.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
// @declaration: true
12
function generic<T>(t: T) {
23
var o: object = t; // expect error
34
}

tests/cases/conformance/types/nonPrimitive/nonPrimitiveUnionIntersection.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
// @declaration: true
12
var a: object & string = ""; // error
23
var b: object | string = ""; // ok
34
a = b; // error

0 commit comments

Comments
 (0)