denoland / deno_lint

Blazing fast linter for JavaScript and TypeScript written in Rust
https://lint.deno.land/
MIT License
1.51k stars 163 forks source link

`no-console` and `no-window` warn on object property names #1232

Closed 0f-0b closed 5 months ago

0f-0b commented 5 months ago

Lint Name

no-console, no-window

Code Snippet

interface Globals { console: any }
const globals: Globals = { console };
const params: { window: number } = { window: 128 };
globals.console.log(params.window);

Expected Result

$ dlint run --config .dlint.json a.ts
no-console

  × `console` usage is not allowed.
   ╭─[a.ts:2:28]
 2 │ interface Globals { console: any }
 3 │ const globals: Globals = { console };
   ·                            ───────
 4 │ const params: { window: number } = { window: 128 };
   ╰────
  help: https://lint.deno.land/#no-console

Found 1 problem

Actual Result

$ dlint run --config .dlint.json a.ts
no-console

  × `console` usage is not allowed.
   ╭─[a.ts:1:21]
 1 │ interface Globals { console: any }
   ·                     ───────
 2 │ const globals: Globals = { console };
   ╰────
  help: https://lint.deno.land/#no-console

no-console

  × `console` usage is not allowed.
   ╭─[a.ts:2:28]
 2 │ interface Globals { console: any }
 3 │ const globals: Globals = { console };
   ·                            ───────
 4 │ const params: { window: number } = { window: 128 };
   ╰────
  help: https://lint.deno.land/#no-console

no-window

  × window is deprecated and scheduled for removal in Deno 2.0
   ╭─[a.ts:3:17]
 3 │ const globals: Globals = { console };
 4 │ const params: { window: number } = { window: 128 };
   ·                 ───┬──
   ·                    ╰── Instead, use `globalThis`
 5 │ globals.console.log(params.window);
   ╰────
  help: https://lint.deno.land/#no-window

no-window

  × window is deprecated and scheduled for removal in Deno 2.0
   ╭─[a.ts:3:38]
 3 │ const globals: Globals = { console };
 4 │ const params: { window: number } = { window: 128 };
   ·                                      ───┬──
   ·                                         ╰── Instead, use `globalThis`
 5 │ globals.console.log(params.window);
   ╰────
  help: https://lint.deno.land/#no-window

no-console

  × `console` usage is not allowed.
   ╭─[a.ts:4:9]
 4 │ const params: { window: number } = { window: 128 };
 5 │ globals.console.log(params.window);
   ·         ───────
   ╰────
  help: https://lint.deno.land/#no-console

no-window

  × window is deprecated and scheduled for removal in Deno 2.0
   ╭─[a.ts:4:28]
 4 │ const params: { window: number } = { window: 128 };
 5 │ globals.console.log(params.window);
   ·                            ───┬──
   ·                               ╰── Instead, use `globalThis`
   ╰────
  help: https://lint.deno.land/#no-window

Found 6 problems

Additional Info

$ cat .dlint.json
{
  "rules": {
    "include": [
      "no-console",
      "no-window"
    ]
  }
}

Version

$ dlint --version
dlint 0.54.0