-
Notifications
You must be signed in to change notification settings - Fork 14
Description
Today we can ignore prefix on interface members using readonly-keyword with ignore-prefix. Sometimes (for performance reasons) I would like to create an interface where all members are mutable. In those cases it might be helpful to be able to prefix the interface name with something that is ignored (instead of prefixing each member). For example:
interface MutablePerson {
firstName: string
lastName: string
}Currently readonly-keyword will warn on this interface. My suggestion is that we add an option like ignore-interface-prefix for the readonly-keyword and if I set that to Mutable the above will not warn.
I'm not sure this is a totally good idea since it will be easier to write mutable interfaces using this option. However I find some parts of my code needs to be in fully mutable mode in order to get good performance.
Another way around this is to have a Mutable<T> type mapping that removes the readonly attributes:
type Mutable<T> = { -readonly [P in keyof T]: T[P] };
interface Person {
readonly firstName: string
readonly lastName: string
}
type MutablePerson = Mutable<Person>;