ReadonlycategoryRule category for grouping.
ReadonlydescriptionRule description explaining what it checks.
ReadonlyidUnique rule identifier (scoped to plugin). Format: "plugin-name:rule-name" (e.g., "angular-standalone:component-not-standalone")
ReadonlynameHuman-readable rule name.
ReadonlyseverityRule severity level.
ReadonlytagsTags for filtering and search.
Analyze a source file and return findings.
Analysis context with file, project, and API access
Promise resolving to array of analysis results
Analysis rule
angular:interface-duplication.Detects two kinds of type-system duplication across a TypeScript project:
Interface family duplication: groups of 3+ interfaces sharing the same conceptual suffix (e.g. DialogRequest, Config, Data) whose property sets have non-zero Jaccard similarity. One violation is emitted per group.
ID type mixing: functions or methods with 2+ parameters whose names end with
Idand whose declared type isstring(i.e. unbranded string IDs).Skips
.d.tsdeclaration files and anything undernode_modules/.Findings belong to the analyzed file (
context.sourceFile): a family is found across the files of the project, but each call reports only the families with a member in that file, once per family, so every file gets its own findings regardless of which other files are analyzed with it. Families whose members are never in the project together (e.g. in different scan batches) are not found.Example