isUpdater(newState: U | Updater): newState is Updater {
return typeof newState === 'function';
}
private getNextState(currentState: T, newState: U | Updater): T {
if (this.isUpdater(newState)) {
return newState(currentState);
}
위의 예시에서 U가 함수 타입으로 들어올 수도 있다는 점 주의.
https://github.com/ReactMasters/state-manager/blob/1717fab2886efe54376ea2df5020d2a7f63775fc/src/store.ts#L54
타입 캐스팅을 타입 가드로 대체하기. 예시)
isUpdater(newState: U | Updater): newState is Updater {
return typeof newState === 'function';
}
private getNextState(currentState: T, newState: U | Updater): T {
if (this.isUpdater(newState)) {
return newState(currentState);
}
위의 예시에서 U가 함수 타입으로 들어올 수도 있다는 점 주의.