Vize

script/no-reserved-props

Disallow reserved names in a component's props declaration

Bad · Good

Default severity: error
Presets: essential, happy-path, ecosystem, nuxt, opinionated
Automatic fix: None; review the suggested change
Applies to: JS/TS scripts in Vue SFCs; examples show the relevant Options API or script setup form
Options: No rule-specific options. Severity and preset selection are configurable.

Configuration (Vite+)

import { defineConfig } from "@vizejs/vite-plugin/vite-plus";

export default defineConfig({
  lint: {
    vize: {
      "preset": "incremental",
      "rules": {
        "script/no-reserved-props": "error"
      }
    },
  },
});
vp run lint

Bad

The object-form ref and $foo, plus the array-form key, are reserved prop names. ref and key are framework controls, and $-prefixed names are rejected.

<script lang="ts">
export default {
props: {
ref: String,   // reserved
$foo: Number    // `$`-prefixed names are reserved
}
}

export default {
props: ['key']    // reserved (array form)
}
</script>

Good

The ordinary prop names name and refValue avoid the reserved names in both spelling and prefix.

<script lang="ts">
export default {
props: {
name: String,
refValue: Number
}
}
</script>

Good avoids this rule's finding under the configuration above; other rules may still report diagnostics.

Implementation · All rules