有没有办法在 TypeScript 的接口中记录字段?

Is there a way to document fields in an interface in TypeScript?

假设我有以下内容:

interface Validator {
  validate: (value: string) => boolean;
  errorMessage: string;
}

interface EditDialogField {
  label: string;
  prop: string;
  required?: boolean;
  type: 'input';
  validators?: Validator[];
}

这很有用,因为当我使用这些界面时 IntelliSense 会弹出建议,但我希望能够添加也显示在 IntelliSense(特别是 VS Code)中的注释。这可能吗?

知道了!

interface EditDialogField {
  /** Explain label here */
  label: string;
  /** Explain prop here */
  prop: string;
  required?: boolean;
  type: 'input';
  validators?: Validator[];
}

如果您想在鼠标悬停在编辑器中时看到它出现,我建议您记录界面并使用文档注释中的 @field

或者您可以使用 @member,也许这样可以为文档提供更好的 syntax-highlighting

/**
 * This is the description of the interface
 *
 * @interface EditDialogField
 * @member {string} label is used for whatever reason
 * @field {string} prop is used for other reason
 */
interface EditDialogField {
  label: string;
  prop: string;
  required?: boolean;
  type: 'input';
  validators?: Validator[];
}

里面的结果VSCode