Skip to content

require-jsdoc

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

このルールは、Props (interface) のプロパティと、CDK Construct の public プロパティに JSDoc の記載を強制します。

プロパティに JSDoc コメントを追加することで、各プロパティが何を表しているのかが明確になり、コードの保守性と理解のしやすさが向上します。


🔧 使用方法

js
// eslint.config.mjs
export default defineConfig([
  {
    // ... some configs
    rules: {
      "awscdk/require-jsdoc": "error",
    },
  },
]);

✅ 適切な例

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

interface MyConstructProps {
  // ✅ Props のプロパティに JSDoc コメントが記載されている
  /** リソースに指定するS3バケット */
  readonly bucket: IBucket;
}
ts
import { Construct } from "constructs";
import { IBucket } from "aws-cdk-lib/aws-s3";

class MyConstruct extends Construct {
  // ✅ Construct の public プロパティに JSDoc コメントが記載されている
  /** Constructで作成されたS3バケット */
  public readonly bucket: IBucket;

  // ✅ public でないプロパティには、このルールは適用されない
  private readonly bucketName: string;
}

❌ 不適切な例

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

interface MyConstructProps {
  // ❌ Props のプロパティに JSDoc コメントが記載されていない
  readonly bucket: IBucket;
}
ts
import { Construct } from "constructs";
import { IBucket } from "aws-cdk-lib/aws-s3";

class MyConstruct extends Construct {
  // ❌ Construct の public プロパティに JSDoc コメントが記載されていない
  public readonly bucket: IBucket;
}