File: computedPropertiesInDestructuring1.errors.txt

package info (click to toggle)
node-typescript 2.1.5-1
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 203,952 kB
  • ctags: 52,987
  • sloc: sh: 11; makefile: 5
file content (52 lines) | stat: -rw-r--r-- 2,381 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
tests/cases/compiler/computedPropertiesInDestructuring1.ts(20,8): error TS2349: Cannot invoke an expression whose type lacks a call signature. Type 'String' has no compatible call signatures.
tests/cases/compiler/computedPropertiesInDestructuring1.ts(21,12): error TS2339: Property 'toExponential' does not exist on type 'string'.
tests/cases/compiler/computedPropertiesInDestructuring1.ts(33,4): error TS2349: Cannot invoke an expression whose type lacks a call signature. Type 'String' has no compatible call signatures.
tests/cases/compiler/computedPropertiesInDestructuring1.ts(34,5): error TS2365: Operator '+' cannot be applied to types '1' and '{}'.


==== tests/cases/compiler/computedPropertiesInDestructuring1.ts (4 errors) ====
    // destructuring in variable declarations
    let foo = "bar";
    let {[foo]: bar} = {bar: "bar"};
    
    let {["bar"]: bar2} = {bar: "bar"};
    
    let foo2 = () => "bar";
    let {[foo2()]: bar3} = {bar: "bar"};
    
    let [{[foo]: bar4}] = [{bar: "bar"}];
    let [{[foo2()]: bar5}] = [{bar: "bar"}];
    
    function f1({["bar"]: x}: { bar: number }) {}
    function f2({[foo]: x}: { bar: number }) {}
    function f3({[foo2()]: x}: { bar: number }) {}
    function f4([{[foo]: x}]: [{ bar: number }]) {}
    function f5([{[foo2()]: x}]: [{ bar: number }]) {}
    
    // report errors on type errors in computed properties used in destructuring
    let [{[foo()]: bar6}] = [{bar: "bar"}];
           ~~~~~
!!! error TS2349: Cannot invoke an expression whose type lacks a call signature. Type 'String' has no compatible call signatures.
    let [{[foo.toExponential()]: bar7}] = [{bar: "bar"}];
               ~~~~~~~~~~~~~
!!! error TS2339: Property 'toExponential' does not exist on type 'string'.
    
    // destructuring assignment
    ({[foo]: bar} = {bar: "bar"});
    
    ({["bar"]: bar2} = {bar: "bar"});
    
    ({[foo2()]: bar3} = {bar: "bar"});
    
    [{[foo]: bar4}] = [{bar: "bar"}];
    [{[foo2()]: bar5}] = [{bar: "bar"}];
    
    [{[foo()]: bar4}] = [{bar: "bar"}];
       ~~~~~
!!! error TS2349: Cannot invoke an expression whose type lacks a call signature. Type 'String' has no compatible call signatures.
    [{[(1 + {})]: bar4}] = [{bar: "bar"}];
        ~~~~~~
!!! error TS2365: Operator '+' cannot be applied to types '1' and '{}'.