interface Store<T> { set: (item: T) => void; } interface Store<T> { set(item: T): void; }
These two methods are different. The first one is declared as a property, so it Contravariance, while the second one Bivariance. For type safety, the first approach is better.

Seonglae Cho