기여 목록 / 8507274
Type IndexedDB key instead of any in IndexedDBViews
DevToolsrefactordevtools/devtools-frontendMerged
DevTools IndexedDBViews.ts에 jsdoc → TS 마이그레이션 당시 남겨진 any 2건을 제거한 컨트리뷰션입니다. 머지된 8500015의 후속입니다.
문제 설명
lastKey와parseKey()반환 타입이any로 선언TODO(crbug.com/1172300)+no-explicit-any주석 동반
- 두 값 모두 keyPath가 아니라 IndexedDB key
해결 내용
두 선언을 IDBValidKey로 지정하고 해당 주석을 제거했습니다.
- private lastKey?: any;
+ private lastKey?: IDBValidKey;
- private parseKey(keyString: string): any {
+ private parseKey(keyString: string): IDBValidKey {근거는 최종 소비처입니다. 두 값 모두 IDBKeyRange.lowerBound()로 전달되고, 그 매개변수 타입이 IDBValidKey입니다.
const key = this.parseKey(this.#keyFilter);
const idbKeyRange = key ? window.IDBKeyRange.lowerBound(key) : null;같은 저장소 IndexedDBModel.keyFromIDBKey()도 8500015에서 동일하게 지정했기에 일관되게 맞췄습니다.
테스트 방법
panels/application:application,:unittests빌드IndexedDBViews.test.ts→ 11/11 통과
배운 점
- 타입을 정할 때 선언부보다 소비처를 보는 것이 빠름
parseKey()는JSON.parse결과를 반환해 선언만으로는 범위가 모호하지만, 최종적으로 웹 표준 API에 전달되므로 그 시그니처가 정답이 됨
- 앞선 CL에서 내린 타입 결정을 후속 CL에서 재사용하면 리뷰 설명 비용이 줄어듦