You probably don't want to modify the `IListItems` interface, because it looks like that is defining the data structure of the list items you retrieve from SharePoint.

It looks more to me like the `this._columns` array is what's defining which columns are showing in the details list, because that's what's getting passed to the `DetailsList` component as its `columns` prop.

In order to make that configurable, you should look into implementing a property pane:

[Make your SharePoint client-side web part configurable][1]

You could have a text box there where you entered in the comma separated list of column names, or if you have a known quantity of specific columns to choose from, you could do some other type of controls, like a list of checkboxes or something.

Then you might want to move that `_columns` array from being an instance property to maybe being part of `state`, so that when someone updates the property pane with new selections, you can update that part of `state` and cause the `DetailsList` to re-render with the new `columns` array.

  [1]: https://docs.microsoft.com/en-us/sharepoint/dev/spfx/web-parts/basics/integrate-with-property-pane