I just had the same issue and was able to make it work with one indirection

/** @type {import('@commitlint/types').UserConfig} */
const config = {
  extends: []
};

module.exports = config;
Answer from Antoine M. on Stack Overflow
๐ŸŒ
npm
npmjs.com โ€บ package โ€บ @commitlint โ€บ types
commitlint/types
March 15, 2026 - Shared types for commitlint packages. Latest version: 20.5.0, last published: a month ago. Start using @commitlint/types in your project by running `npm i @commitlint/types`. There are 125 other projects in the npm registry using @commitlint/types.
      ยป npm install @commitlint/types
    
Published ย  Mar 15, 2026
Version ย  20.5.0
๐ŸŒ
GitHub
github.com โ€บ conventional-changelog โ€บ commitlint
GitHub - conventional-changelog/commitlint: ๐Ÿ““ Lint commit messages
A number of shared configurations are available to install and use with commitlint:
Starred by 18.5K users
Forked by 965 users
Languages ย  TypeScript 92.2% | JavaScript 7.8%
Discussions

Commitlint - Types for '.commitlintrc.js'
In the .commitlintrc.js file, I wanted to type the exported configuration option, so that my IDE could suggest possible options. More on stackoverflow.com
๐ŸŒ stackoverflow.com
Thoughts on jujutsu?
I haven't wanted to dive into this until it's more widely used, because I don't want to learn a tool that will die on me, but I really really hope it catches on. I hate git. I love what it does, but Jesus it's a train wreck, it does way too much, in way too many ways, with no consistency More on reddit.com
๐ŸŒ r/git
6
15
July 26, 2024
Video: A linker in the Wild (Rust linker)
This is really really good work. To add some color to this for other folks - the linker presented here is an "incremental" linker. Right now Rust defers to your system linker (or whatever you might've specified) and relinks the binary on every incremental compilation. This linker design would let you only relink whatever parts of your codebase have changed. Lets say you're building a video game or a GUI app. Wild would let modify a single function, recompile that function, and then relink only that function. Combined with cranelift you could probably get JIT + hotreloading of rust code on the order of milliseconds. The other pieces presented at the end are very interesting. If rustc had a more intimate relationship with the linker, it could rely on the linker to guide codegen. Why would you bother doing codedgen for something that the linker would eliminate anyways? This would make compiling big libraries much faster since you don't need the entire crate compiled - only the functions you directly use. Combined with caching, the rust compiler could be *so* much faster. More on reddit.com
๐ŸŒ r/rust
19
140
April 19, 2024
Automating Releases in GitHub with Conventional Commits
Interesting article. I also use commitizen More on reddit.com
๐ŸŒ r/git
1
4
March 26, 2024
๐ŸŒ
Conventional Commits
conventionalcommits.org โ€บ en โ€บ v1.0.0
Conventional Commits
types other than fix: and feat: are allowed, for example @commitlint/config-conventional (based on the Angular convention) recommends build:, chore:, ci:, docs:, style:, refactor:, perf:, test:, and others.
๐ŸŒ
GitHub
github.com โ€บ conventionalcommit โ€บ commitlint
GitHub - conventionalcommit/commitlint: commitlint checks if your commit messages meets the conventional commit format ยท GitHub
February 22, 2026 - echo "fear: do not fear for commit message" | commitlint lint # โŒ type-enum: type 'fear' is not allowed, you can use one of [build chore ci docs feat fix merge perf refactor revert style test]
Starred by 86 users
Forked by 9 users
Languages ย  Go 91.4% | Shell 8.6%
Find elsewhere
๐ŸŒ
Tessl
tessl.io โ€บ registry โ€บ tessl โ€บ npm-commitlint--types โ€บ 19.8.0 โ€บ files โ€บ docs โ€บ index.md
19.8.0 โ€ข npm-commitlint--types โ€ข tessl โ€ข Registry โ€ข Tessl
January 29, 2026 - This package serves as the foundational type library that enables type safety and consistency across all commitlint components including linting, configuration, formatting, and rule validation.
๐ŸŒ
Yarn
yarnpkg.com โ€บ package
@commitlint/types | Yarn - Package Manager
Yarn is a package manager that doubles down as project manager. Whether you work on simple projects or industry monorepos, whether you're an open source developer or an enterprise user, Yarn has your back ยท First package manager built specifically around workspaces, Yarn lets you split your ...
๐ŸŒ
Medium
arunkumarvallal.medium.com โ€บ become-a-pro-at-commit-messages-using-commitlint-56dab86333b3
Become a Pro at Commit Messages using Commitlint | by Arun kumar V | Medium
October 23, 2023 - 10. Types other than feat and fix MAY be used in your commit messages. The upcoming article will focus on the custom commitlint and its integration.
๐ŸŒ
freeCodeCamp
freecodecamp.org โ€บ news โ€บ how-to-use-commitlint-to-write-good-commit-messages
How to Write Good Commit Messages with Commitlint
November 12, 2021 - The default commitlint convention uses the Conventional Commits Convention where there is a type, optionally a scope, a subject, and optionally a body and footer.
๐ŸŒ
LogRocket
blog.logrocket.com โ€บ home โ€บ commitlint: write more organized code
Commitlint: Write more organized code - LogRocket Blog
June 4, 2024 - Letโ€™s leave the technical realm for a moment to focus on writing โ€” more precisely, how to write good commit messages that are self-explanatory and pass the commitlint default validations. A good typical commit message will have the following structure: <type>(<scope?>): <subject!> <BLANK LINE> <body?> <BLANK LINE> <footer?>
๐ŸŒ
npm
npmjs.com โ€บ package โ€บ @commitlint โ€บ config-conventional
commitlint/config-conventional
March 15, 2026 - Shareable commitlint config enforcing conventional commits. Latest version: 20.5.0, last published: a month ago. Start using @commitlint/config-conventional in your project by running `npm i @commitlint/config-conventional`. There are 1374 other projects in the npm registry using ...
      ยป npm install @commitlint/config-conventional
    
Published ย  Mar 15, 2026
Version ย  20.5.0
๐ŸŒ
Tericcabrel
blog.tericcabrel.com โ€บ apply-conventional-commit-style-on-your-project-with-commitlint
Apply conventional commit style on your project with commitlint
February 24, 2026 - Then we override types and scopes ... for type-enum and scope-enum respectively. We set the case of the scope to `camelCase`. About the subject, we indicate that it is never empty and has is in `lower-case,` and the max length is 72 characters. The number 2 is the error level, 1 for warning level, and 0 to disable the rule. For more details, check the documentation of commitlint...
๐ŸŒ
Vojtechruzicka
vojtechruzicka.com โ€บ commitlint
Commitlint: validate commit conventions automatically | Vojtech Ruzicka's Programming Blog
November 18, 2019 - It is called @commitlint/prompt-cli. You can easily install it: ... Now you can register commit command in your package.json. ... Now instead of git commit, you can run npm run commit. It launches an interactive wizard in your console, which will ask you for all the parts of a commit message such as type, subject, and so on.
๐ŸŒ
DEV Community
dev.to โ€บ maafaishal โ€บ better-git-commits-with-commitlint-g18
Better Git Commits with `@commitlint` - DEV Community
September 12, 2023 - The following are all the types that commitlint suggests and provides including the example commit:
๐ŸŒ
Commitlint
commitlint.js.org โ€บ reference โ€บ examples.html
Examples | commitlint
To fix this issue in VS Code, you can specify an additional space after each emoji in your commitlint.config.ts file. ... import { type UserConfig } from "@commitlint/types"; export default { // Use the conventional commit rules as a base. extends: ["@commitlint/config-conventional"], prompt: { questions: { type: { enum: { // Add a space to a few common types for better alignment.
๐ŸŒ
Hyperskill
hyperskill.org โ€บ learn โ€บ step โ€บ 26292
Conventional Commits and commitlint
Hyperskill is an educational platform for learning programming and software development through project-based courses, that helps you secure a job in tech. Master Python, Java, Kotlin, and more with real-world coding challenges.
๐ŸŒ
Medium
trishan9.medium.com โ€บ what-is-commitlint-why-to-use-how-to-setup-and-more-2832d50ccff3
What is Commitlint? Why to use? How to Setup and more | by Trishan Wagle | Medium
September 8, 2023 - Commit Conventions โ€” It makes our commit cleaner, and more specific of what changes we made Better understanding of commits โ€” A commit with a specific type and scope will help you understand what code the commit changes Adherence to a particular ...
๐ŸŒ
HexDocs
hexdocs.pm โ€บ commitlint โ€บ Commitlint.html
Commitlint โ€” commitlint v0.1.2
config :commitlint, allowed_types: [ "feat", "fix", "docs", "style", "refactor", "perf", "test", "build", "ci", "chore", "revert" ]