Do not prefix TypeScript interface names
TLDR: If you're writing TypeScript, you're using intellisense, and it will yell at you if you try to use an interface as a variable. So there is no need anymore for naming conventions like
IMyInterface
orAMyAbstractClass
.
When I first started using TypeScript in 2018 I saw a lot of people's code prefixing interfaces with "I":
interface ICar {
color: string
horsepower: number
}
function drive(car: ICar) { /*...*/ }
However, that is a convention borrowed from the past (other languages). It used to be mentioned in the TypeScript handbook to not prefix, but that generated more argument than resolution. The handbook code examples, however, do not use prefixes.
I believe modern dev environments have relieved us from the need to include type and contextual information into the names of many code things, not just interfaces.
Now we get proper type and context from things like intellisense and language servers, whether it's inferred or strictly typed. This frees us to have names for things that can be more descriptive of the processes and data in question.
Tweet