angular2-smart-table icon indicating copy to clipboard operation
angular2-smart-table copied to clipboard

[SUGGESTION] Rename Settings class to a less generic name

Open joaoa-casagrande opened this issue 11 months ago • 1 comments

In this example:

settings: Settings = {
  columns: {
    id: {
      title: 'ID'
    },
    name: {
      title: 'Full Name'
    },
    username: {
      title: 'User Name'
    },
    email: {
      title: 'Email'
    }
  }
};

The type of the settings property is called Settings, and with today's IDEs (like WebStorm), automatic import is a very handy feature. So when a class has a common name, like Config or Settings instead of something more specific like Angular2SmartConfig or Angular2SmartSettings, it' becomes a hassle to import bacuse the IDE may import the wrong. So maybe changing it to something more specific to this package may be better in the future

joaoa-casagrande avatar Dec 21 '24 21:12 joaoa-casagrande

It is quite common in the typescript world to risk name clashes. For example RxJS is using the generic terms Observable, Observer, Subscriber, Subscription, etc. as if these weren't things that existed long before RxJS has seen light.

The next problem would be with the Row class, which we would need to rename to SmartTableRow.

Also, DataSource is something not really exclusive (and maybe not even expected) for a table library.

I don't want to say "no", right now, because it's a quite easy fix and - let's say - possible in a new major release which will contain a lot of breaking changes anyway, but to be honest I would not have too much hope that there will be a consistent solution for each and every class.

A temporary solution for your project could be to use the import ... as feature of typescript. And to make refactoring in the future less painful, here is the name we would be using in a possible 4.0.0 release: SmartTableSettings.

uap-universe avatar Dec 28 '24 13:12 uap-universe