여기서 , 특정 로직에 의해 sell , buy 라는 부분을 분리해서 따로 보여주고자 할 때 (초깃값은 buy)

tradeType이라는 상태를 새로 만들고, 여기에 buy 나 sell 이라는 값을 넣어서

대괄호 표기법을 이용하여 tradeInfo의 키에 접근하는 것이다

const [tradeInfo, setTradeInfo] = useState<{ buy: TradeLogInfo[]; sell: TradeLogInfo[] } | null>(null);
...

const [tradeType, setTradeType] = useState('buy');
// type inference 때문에 굳이 string으로 지정할 필요 x
// const [tradeType, setTradeType] = useState<string>('buy');
...

return (
	<>
		{tradeInfo[tradeType].map((i) => {...}}
	</>
)

근데 에러가 발생한다

'string' 형식의 식을 '{ buy: TradeLogInfo[]; sell: TradeLogInfo[]; }' 인덱스 형식에 사용할 수 없으므로 요소에 암시적으로 'any' 형식이 있습니다.
'{ buy: TradeLogInfo[]; sell: TradeLogInfo[]; }' 형식에서 'string' 형식의 매개 변수가 포함된 인덱스 시그니처를 찾을 수 없습니다.ts(7053)

이 문제는 TS는 객체의 키를 컴파일 시점에 검증하기 때문에,

tradeType 변수의 값이 'buy'나 'sell'임을 알 수 없다

그러므로 TS는 tradeType이 잠재적으로 tradeInfo 객체의 유효하지 않은 키일 수 있다고 판단하므로 에러를 발생시키는 것이다