Why kebab-case non-standard attributes are allowed while others aren't? And how to define types like this in TypeScript? Why kebab-case non-standard attributes are allowed while others aren't? And how to define types like this in TypeScript? vue.js vue.js