Skip to content

Commit 48c0aed

Browse files
committed
Add tests
1 parent bcc1d2a commit 48c0aed

File tree

1 file changed

+30
-0
lines changed

1 file changed

+30
-0
lines changed
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
// @strict: true
2+
// @target: es2015
3+
4+
const a = 'a';
5+
6+
function f1<T extends { a: string, b: number }>(obj: T) {
7+
let { ...r0 } = obj;
8+
let { a: a1, ...r1 } = obj;
9+
let { a: a2, b: b2, ...r2 } = obj;
10+
let { 'a': a3, ...r3 } = obj;
11+
let { ['a']: a4, ...r4 } = obj;
12+
let { [a]: a5, ...r5 } = obj;
13+
}
14+
15+
const sa = Symbol();
16+
const sb = Symbol();
17+
18+
function f2<T extends { [sa]: string, [sb]: number }>(obj: T) {
19+
let { [sa]: a1, [sb]: b1, ...r1 } = obj;
20+
}
21+
22+
function f3<T, K1 extends keyof T, K2 extends keyof T>(obj: T, k1: K1, k2: K2) {
23+
let { [k1]: a1, [k2]: a2, ...r1 } = obj;
24+
}
25+
26+
type Item = { a: string, b: number, c: boolean };
27+
28+
function f4<K1 extends keyof Item, K2 extends keyof Item>(obj: Item, k1: K1, k2: K2) {
29+
let { [k1]: a1, [k2]: a2, ...r1 } = obj;
30+
}

0 commit comments

Comments
 (0)