data classes on kotlin/js work upto a point. If all you do is access the properties, then you will generally get away with a lot.
Once you start calling methods (i.e. copy, componentN, toString) on them, you'll start getting a lot of undefined.
In all fairness, it is bad practice anyway for state values to have methods.
All in all, if you are using data classes just for that holding data (which is what they are for), you do not need to go for interfaces, Unless you are doing class based components