Skip to content

TS1518 depends on operand order in negated v-mode class unions#63718

Description

@mohsen1

馃攷 Search Terms

TS1518, RegExp v flag, MayContainStrings, negated character class, ClassUnion, operand order, q{}

馃晽 Version & Regression Information

Occurs in every version tested: 7.0.2 and 7.1.0-dev.20260804.1 (nightly). I searched open and closed issues.

馃捇 Code

const a = /[^\q{xy}b]/v; // TS1518
const b = /[^b\q{xy}]/v; // no error

馃檨 Actual behavior

TS1518 only considers the first union operand. The second pattern is accepted but is invalid JavaScript.

馃檪 Expected behavior

Both patterns report TS1518: MayContainStrings is true when any union operand may match a string.

Metadata

Metadata

Assignees

No one assigned

    Labels

    BugA bug in TypeScriptDomain: ParserThe parser didn't handle the syntax correctlyHelp WantedYou can do this

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions