Skip to content

Bug: [no-base-to-string] intersection of safe object and plain object considered maybe-unsafe #8585

Closed
@Catatomik

Description

@Catatomik

Before You File a Bug Report Please Confirm You Have Done The Following...

  • I have tried restarting my IDE and the issue persists.
  • I have updated to the latest version of the packages.
  • I have searched for related issues and found none that matched my issue.
  • I have read the FAQ and my problem is not listed.

Issue Description

Type of variable channel is TextChannel, which has a correct .toString method. The type of variable channel has been checked by debugging the typescript-eslint rule, using checker.typeToString.
Other debugging shows that parent expression, channel.toString, is of type

(() => `<#${string}>`) & (() => string)

For clarification purpose, .toString is directly called, but done under the hood by JavaScript, and TypeScript & typescript-eslint understand that, so the result is the same.

Reproduction Repository Link

https://github.com/Catatomik/eslint-ts-fpos-no-base-to-string

Repro Steps

  1. clone the repo
  2. pnpm install
  3. npm run lint

Versions

package version
typescript-eslint 7.1.0
TypeScript 5.3.3
ESLint 8.57.0
node 18.19.0

Metadata

Metadata

Assignees

No one assigned

    Labels

    accepting prsGo ahead, send a pull request that resolves this issuebugSomething isn't workinglocked due to agePlease open a new issue if you'd like to say more. See https://typescript-eslint.io/contributing.package: eslint-pluginIssues related to @typescript-eslint/eslint-plugin

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions