no-parent-name-construct-id-match
✅ Using recommended in an ESLint configuration enables this rule.
This rule disallows using the parent class name as the construct IDs.
It is not good to specify a string that matches the parent class name for construct ID, as it makes the CloudFormation resource hierarchy unclear.
✅ Correct Example
ts
import { Construct } from "constructs";
import { Bucket } from "aws-cdk-lib/aws-s3";
export class MyConstruct extends Construct {
constructor(scope: Construct, id: string) {
super(scope, id);
// ✅ Can use a different name
const bucket = new Bucket(this, "MyBucket");
}
}
❌ Incorrect Example
ts
import { Construct } from "constructs";
import { Bucket } from "aws-cdk-lib/aws-s3";
export class MyConstruct extends Construct {
constructor(scope: Construct, id: string) {
super(scope, id);
// ❌ Shouldn't use the parent class name
const bucket = new Bucket(this, "MyConstruct");
}
}