[TypeScript] 제스처로 대화하기. #4 - 더블 탭 편
![[TypeScript] 제스처로 대화하기. #4 - 더블 탭 편](/_next/image?url=https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fstock%2Funsplash%2Fd5yOOWHcFnc%2Fupload%2F30d9ca5760ad57f3c1b975a46559df94.jpeg&w=3840&q=75)
더블 탭은 짧은 시간 내에 탭을 두 번 시행하는 것을 말합니다. 따라서 이전 편에서 다뤘던 탭 감지의 구현을 활용할 수 있습니다. 구현 함수는 아래와 같이 정의할 수 있습니다.
function onTap(callback: (e: TapEvent) => void);
TapEvent는 가상의 유형으로, 내부적으로 필요한 정보를 넘겨주어야 합니다. 이를 활용하여 더블 탭을 감지할 수 있습니다.
let count = 0;
onTap(e => {
if(++count < 2) { return; }
// ...
});
제한 요소
탭을 감지할 때는 지연 시간과 범위를 제한했습니다. 더블 탭에서도 필요한 경우 비슷한 방법으로 해결할 수 있습니다.
if(count < 1 || currDelay > maxDelay || currDistance > maxDistance) { count = 0; }
// ...
주의할 점은 조건에 위배된 경우에 count를 0으로 초기화할 뿐, 곧바로 반환하지 않는다는 점입니다. 이때에도 여전히 탭 횟수가 누적되어야 하기 때문입니다.
시리즈는 다음 편에서 계속됩니다. 읽어주셔서 감사합니다!
묻고 답하기
개인적인 판단에 의해 적절하다고 여겨지는 경우, 모두가 볼 수 있도록 이곳에 문답이 추가됩니다. 그렇지 않더라도 질문에 대한 답변은 별도로 이루어집니다.
![[TypeScript] 자료 구조로 담아내기. #14 - 연결 리스트(with. 이중 연결)](/_next/image?url=https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fstock%2Funsplash%2FJZ8AHFr2aEg%2Fupload%2F64ada685c81df630bc522030ccb249a6.jpeg&w=3840&q=75)
![[TypeScript] 자료 구조로 담아내기. #13 - 연결 리스트(with. 탐색)](/_next/image?url=https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fstock%2Funsplash%2F11KDtiUWRq4%2Fupload%2F9d73119b329ff023d19fc6162630671c.jpeg&w=3840&q=75)
![[TypeScript] 자료 구조로 담아내기. #12 - 연결 리스트(with. null 노드)](/_next/image?url=https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fstock%2Funsplash%2F5v235ueAU58%2Fupload%2F265377fe2e8da28d69701f873c907dc4.jpeg&w=3840&q=75)
![[TypeScript] 자료 구조로 담아내기. #11 - 연결 리스트(with. 헤드 노드)](/_next/image?url=https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fstock%2Funsplash%2Fv8pL84kvTTc%2Fupload%2Fd70e9fdf03dc1e678f9026bee97e822d.jpeg&w=3840&q=75)
![[TypeScript] 자료 구조로 담아내기. #10 - 연결 리스트(with. 연결)](/_next/image?url=https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fstock%2Funsplash%2FXe7za0JtTeM%2Fupload%2F1b7999ae5b4dd213025f4034465ddb80.jpeg&w=3840&q=75)