Merge pull request #13505 from Microsoft/fix13504

Emit 'object' type in declaration emitter
This commit is contained in:
Ron Buckton 2017-01-16 15:05:41 -08:00 committed by GitHub
commit ed13dde154
9 changed files with 44 additions and 0 deletions

View file

@ -390,6 +390,7 @@ namespace ts {
case SyntaxKind.StringKeyword:
case SyntaxKind.NumberKeyword:
case SyntaxKind.BooleanKeyword:
case SyntaxKind.ObjectKeyword:
case SyntaxKind.SymbolKeyword:
case SyntaxKind.VoidKeyword:
case SyntaxKind.UndefinedKeyword:

View file

@ -11,3 +11,11 @@ var b: WithNonPrimitive = {foo: "bar"}; // expect error
//// [nonPrimitiveAsProperty.js]
var a = { foo: { bar: "bar" } };
var b = { foo: "bar" }; // expect error
//// [nonPrimitiveAsProperty.d.ts]
interface WithNonPrimitive {
foo: object;
}
declare var a: WithNonPrimitive;
declare var b: WithNonPrimitive;

View file

@ -34,3 +34,11 @@ function returnError() {
var ret = 123;
return ret; // expect error
}
//// [nonPrimitiveInFunction.d.ts]
declare function takeObject(o: object): void;
declare function returnObject(): object;
declare var nonPrimitive: object;
declare var primitive: boolean;
declare function returnError(): object;

View file

@ -73,3 +73,21 @@ var x; // error
var y; // ok
var z; // ok
var u; // ok
//// [nonPrimitiveInGeneric.d.ts]
declare function generic<T>(t: T): void;
declare var a: {};
declare var b: string;
declare function bound<T extends object>(t: T): void;
declare function bound2<T extends object>(): void;
declare function bound3<T extends {}>(t: T): void;
interface Proxy<T extends object> {
}
declare var x: Proxy<number>;
declare var y: Proxy<null>;
declare var z: Proxy<undefined>;
interface Blah {
foo: number;
}
declare var u: Proxy<Blah>;

View file

@ -10,3 +10,8 @@ var a = ""; // error
var b = ""; // ok
a = b; // error
b = a; // ok
//// [nonPrimitiveUnionIntersection.d.ts]
declare var a: object & string;
declare var b: object | string;

View file

@ -1,3 +1,4 @@
// @declaration: true
interface WithNonPrimitive {
foo: object
}

View file

@ -1,3 +1,4 @@
// @declaration: true
function takeObject(o: object) {}
function returnObject(): object {
return {};

View file

@ -1,3 +1,4 @@
// @declaration: true
function generic<T>(t: T) {
var o: object = t; // expect error
}

View file

@ -1,3 +1,4 @@
// @declaration: true
var a: object & string = ""; // error
var b: object | string = ""; // ok
a = b; // error