Updated with missing headerStyles type
Good day everyone. I've been trying to create a dynamic style adding function for table th elements:
type headerStyles = { textAlign: string; backgroundColor?: string };
const exampleData:[string, {
    textAlign: string;
    backgroundColor?: string;
}] = [
['header text1', { textAlign: 'left' }],
['header text2', { textAlign: 'center' }]
['header text3', { textAlign: 'left', backgroundColor: '#ddd' }]
['header text4', { textAlign: 'left' }]
]
const renderHeader = (headers: [string, headerStyles][]) => {
  const head = document.createElement('thead');
  const row = document.createElement('tr');
  headers.forEach(headerProps => {
    const th = document.createElement('th');
    const styles = headerProps[1];
    Object.keys(styles).forEach(prop => {
      th.style[prop] = styles[prop]; // <--- Element implicitly has an 'any' type because expression of type 'string' can't be used to index type 'headerStyles'
    });
  });
  ...
};
I've tried assigning [prop as keyof typeof styles] from here, however it didn't help since some keys might be undefined (like backgroundColor).
Tried adding  if (prop !== undefined) check, which also didn't help.
Tried assigning [key:string] type link, however again, key might be undefined.
Is there any way without adding a bunch of empty 'backgroundColor keys in data object?