File: noPropertyAccessFromIndexSignature1.errors.txt

package info (click to toggle)
node-typescript 5.0.4%2Bds1-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 459,140 kB
  • sloc: javascript: 1,972,754; makefile: 6; sh: 1
file content (54 lines) | stat: -rw-r--r-- 1,697 bytes parent folder | download | duplicates (3)
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
53
54
tests/cases/conformance/additionalChecks/noPropertyAccessFromIndexSignature1.ts(24,3): error TS4111: Property 'foo' comes from an index signature, so it must be accessed with ['foo'].
tests/cases/conformance/additionalChecks/noPropertyAccessFromIndexSignature1.ts(32,3): error TS4111: Property 'bar' comes from an index signature, so it must be accessed with ['bar'].
tests/cases/conformance/additionalChecks/noPropertyAccessFromIndexSignature1.ts(40,4): error TS4111: Property 'bar' comes from an index signature, so it must be accessed with ['bar'].


==== tests/cases/conformance/additionalChecks/noPropertyAccessFromIndexSignature1.ts (3 errors) ====
    interface A {
        foo: string
    }
    
    interface B {
        [k: string]: string
    }
    
    interface C {
        foo: string
        [k: string]: string
    }
    
    declare const a: A;
    declare const b: B;
    declare const c: C;
    declare const d: C | undefined;
    
    // access property
    a.foo;
    a["foo"]
    
    // access index signature
    b.foo;
      ~~~
!!! error TS4111: Property 'foo' comes from an index signature, so it must be accessed with ['foo'].
    b["foo"];
    
    // access property
    c.foo;
    c["foo"]
    
    // access index signature
    c.bar;
      ~~~
!!! error TS4111: Property 'bar' comes from an index signature, so it must be accessed with ['bar'].
    c["bar"];
    
    // optional access property
    d?.foo;
    d?.["foo"]
    
    // optional access index signature
    d?.bar;
       ~~~
!!! error TS4111: Property 'bar' comes from an index signature, so it must be accessed with ['bar'].
    d?.["bar"];