Skip to content

props-name-convention

ℹ️ このルールは recommended ルールには含まれていません。

CDK Construct クラスの Props (interface) 名が ${ConstructName}Props の形式に従うことを強制します。
(ここでの ${ConstructName} は Construct のクラス名を示します)

一貫した命名パターンに従うことで、Construct とその Props (interface) の関係が明確になり、コードの保守性と理解のしやすさが向上します。


🔧 使用方法

ts
// oxlint.config.ts
export default defineConfig({
  // ... some configs
  rules: {
    "awscdk/props-name-convention": "error",
  },
});
js
// eslint.config.mjs
export default defineConfig({
  // ... some configs
  rules: {
    "awscdk/props-name-convention": "error",
  },
});

✅ 適切な例

ts
import { Construct } from "constructs";
import { IBucket } from "aws-cdk-lib/aws-s3";

// ✅ Props (interface) 名が `${ConstructName}Props` の形式に従っている
interface MyConstructProps {
  readonly bucket?: IBucket;
}

class MyConstruct extends Construct {
  constructor(scope: Construct, id: string, props: MyConstructProps) {
    super(scope, id);
  }
}

❌ 不適切な例

ts
import { Construct } from "constructs";
import { IBucket } from "aws-cdk-lib/aws-s3";

// ❌ Props (interface) 名が `${ConstructName}Props` の形式に従っていない
interface Props {
  readonly bucket?: IBucket;
}

class MyConstruct extends Construct {
  constructor(scope: Construct, id: string, props: Props) {
    super(scope, id);
  }
}