Open
Description
Summary
TextFieldRef.getBoundingClientRect
의 return type 에 deprecated 된 ClientRect
타입을 제거합니다. ClientRect
는 DOMRect
를 extends 할 뿐 추가로 다른 속성을 가지지는 않기 때문에 제거해도 무방합니다.
export interface TextFieldRef {
focus(options?: FocusOptions): void
blur(): void
setSelectionRange(start?: number, end?: number, direction?: SelectionRangeDirections): void
getSelectionRange(): [number, number]
selectAll(): void
unselect(): void
getBoundingClientRect(): ClientRect | DOMRect // ClientRect just extends DOMRect and is deprecated
getDOMNode(): HTMLInputElement | null
}
Description
getBoundingClientRect(): ClientRect | DOMRect
를 가지고 있는 것 때문에 HTMLElement
, TextFieldRef
를 확장한 인터페이스를 만들지 못하는 문제가 있습니다.

Todo
근본적으로는 TextField 안에서 useImperativeHandle
을 사용하여 HTMLInputElement
에 대한 정보를 모두 잃어버리게 되고, RefObject<HTMLElement>
타입의 값을 TextField
의 ref 에 할당하지 못하는 것이 문제입니다. useImperativeHandle
훅으로
TextField
의 ref 타입을 재정의 하고 있는 로직을 지우고 HTMLInputElement
의 속성으로 대체 가능한지 봐야합니다. 작업하게 되면 별도 이슈로 관리하면 좋을 것 같습니다.
Activity