Test:spread contextually typed by binding pattern

This commit is contained in:
Nathan Shively-Sanders
2017-10-03 12:43:23 -07:00
parent 7b0e74d91a
commit 2c04b5510f
4 changed files with 91 additions and 0 deletions

View File

@@ -0,0 +1,25 @@
//// [spreadContextualTypedBindingPattern.ts]
// #18308
interface Person {
naam: string,
age: number
}
declare const bob: Person
declare const alice: Person
// [ts] Initializer provides no value for this binding element and the binding element has no default value.
const { naam, age } = {...bob, ...alice}
//// [spreadContextualTypedBindingPattern.js]
var __assign = (this && this.__assign) || Object.assign || function(t) {
for (var s, i = 1, n = arguments.length; i < n; i++) {
s = arguments[i];
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
t[p] = s[p];
}
return t;
};
// [ts] Initializer provides no value for this binding element and the binding element has no default value.
var _a = __assign({}, bob, alice), naam = _a.naam, age = _a.age;

View File

@@ -0,0 +1,27 @@
=== tests/cases/conformance/types/spread/spreadContextualTypedBindingPattern.ts ===
// #18308
interface Person {
>Person : Symbol(Person, Decl(spreadContextualTypedBindingPattern.ts, 0, 0))
naam: string,
>naam : Symbol(Person.naam, Decl(spreadContextualTypedBindingPattern.ts, 1, 18))
age: number
>age : Symbol(Person.age, Decl(spreadContextualTypedBindingPattern.ts, 2, 15))
}
declare const bob: Person
>bob : Symbol(bob, Decl(spreadContextualTypedBindingPattern.ts, 6, 13))
>Person : Symbol(Person, Decl(spreadContextualTypedBindingPattern.ts, 0, 0))
declare const alice: Person
>alice : Symbol(alice, Decl(spreadContextualTypedBindingPattern.ts, 7, 13))
>Person : Symbol(Person, Decl(spreadContextualTypedBindingPattern.ts, 0, 0))
// [ts] Initializer provides no value for this binding element and the binding element has no default value.
const { naam, age } = {...bob, ...alice}
>naam : Symbol(naam, Decl(spreadContextualTypedBindingPattern.ts, 10, 7))
>age : Symbol(age, Decl(spreadContextualTypedBindingPattern.ts, 10, 13))
>bob : Symbol(bob, Decl(spreadContextualTypedBindingPattern.ts, 6, 13))
>alice : Symbol(alice, Decl(spreadContextualTypedBindingPattern.ts, 7, 13))

View File

@@ -0,0 +1,28 @@
=== tests/cases/conformance/types/spread/spreadContextualTypedBindingPattern.ts ===
// #18308
interface Person {
>Person : Person
naam: string,
>naam : string
age: number
>age : number
}
declare const bob: Person
>bob : Person
>Person : Person
declare const alice: Person
>alice : Person
>Person : Person
// [ts] Initializer provides no value for this binding element and the binding element has no default value.
const { naam, age } = {...bob, ...alice}
>naam : string
>age : number
>{...bob, ...alice} : { naam: string; age: number; }
>bob : Person
>alice : Person

View File

@@ -0,0 +1,11 @@
// #18308
interface Person {
naam: string,
age: number
}
declare const bob: Person
declare const alice: Person
// [ts] Initializer provides no value for this binding element and the binding element has no default value.
const { naam, age } = {...bob, ...alice}