biomejs / biome

A toolchain for web projects, aimed to provide functionalities to maintain them. Biome offers formatter and linter, usable via CLI and LSP.

Home Page:https://biomejs.dev

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

πŸ’… `noEmptyInterface` may break global augmentation

kosmotema opened this issue Β· comments

Environment information

CLI:
  Version:                      1.8.0
  Color support:                true

Platform:
  CPU Architecture:             x86_64
  OS:                           windows

Environment:
  BIOME_LOG_DIR:                unset
  NO_COLOR:                     unset
  TERM:                         unset
  JS_RUNTIME_VERSION:           "v18.19.1"
  JS_RUNTIME_NAME:              "node"
  NODE_PACKAGE_MANAGER:         "pnpm/9.1.2"

Biome Configuration:
  Status:                       Loaded successfully
  Formatter disabled:           false
  Linter disabled:              false
  Organize imports disabled:    false
  VCS disabled:                 false

Linter:
  JavaScript enabled:           true
  JSON enabled:                 true
  CSS enabled:                  false
  Recommended:                  true
  All:                          false

Workspace:
  Open Documents:               0

Rule name

suspicious/noEmptyInterface

Playground link

https://biomejs.dev/playground/?code=LwAvACAAcgBvAG8AdAAgAGQAZQBjAGwAYQByAGEAdABpAG8AbgAgAHcAaQB0AGgAIABhAG4AIABlAG0AcAB0AHkAIABpAG4AdABlAHIAZgBhAGMAZQAKAGQAZQBjAGwAYQByAGUAIABnAGwAbwBiAGEAbAAgAHsACgAgACAAbgBhAG0AZQBzAHAAYQBjAGUAIABNAHkAQQB3AGUAcwBvAG0AZQBOAGEAbQBlAHMAcABhAGMAZQAgAHsACgAgACAAIAAgAGkAbgB0AGUAcgBmAGEAYwBlACAARwBsAG8AYgBhAGwAUgBlAGcAaQBzAHQAZQByACAAewB9AAoAIAAgAH0ACgB9AAoACgAvAC8AIABsAGEAdABlAHIAIABpAG4AIABhAG4AbwB0AGgAZQByACAAbQBvAGQAdQBsAGUACgBkAGUAYwBsAGEAcgBlACAAZwBsAG8AYgBhAGwAIAB7AAoAIAAgAG4AYQBtAGUAcwBwAGEAYwBlACAATQB5AEEAdwBlAHMAbwBtAGUATgBhAG0AZQBzAHAAYQBjAGUAIAB7AAoAIAAgACAAIABpAG4AdABlAHIAZgBhAGMAZQAgAEcAbABvAGIAYQBsAFIAZQBnAGkAcwB0AGUAcgAgAHsACgAgACAAIAAgACAAIABmAG8AbwA6ACAAJwBiAGEAcgAnACwACgAgACAAIAAgAH0ACgAgACAAfQAKAH0A

Expected result

Empty interfaces (which doesn't extend any other interface?) within the declare global block should be ignored from converting them to a type, since the fix will break global augmentation

Code of Conduct

  • I agree to follow Biome's Code of Conduct

In the past we enabled empty interface that extends a type in an ambient module (#959).
We could accept any empty interface in an ambient module.