generated at
Discordのタイピング表示に関する挙動
そもそもDiscordタイピングを止めるAPI、止まったことを示すイベントはない
なので typingStart イベントがあるのに対して typingStop がなかったりする
つまりサーバー側でタイピングの終了に関する処理は一切していなくて、全部クライアント側にあることになる
どうやってタイピング表示を止めているか
最後のタイピングから10秒程度経ったら
(同じチャンネルに)メッセージが送信されたら

Discord.js(v12以前)の stopTyping はどうなってるのか
startTyping をすると約10秒ごとにAPIを叩いている
stopTyping をするまでこれが続く
おそらくプログラム側から扱いやすくするためにこうなっている
10秒ごとに繰り返しAPIを叩いているから、stopTypingでループをやめるまで完了しないpromiseを返すことになる
ループが続いている限りはAPI実行でエラーが発生する可能性があるからpromiseを完了にできない
なのでこのpromiseをawaitすると処理が進まずに期待した動作にならないので注意

注意点:メッセージを送信すると同時に stopTyping したほうがいい
上に書いた動作から stopTyping を実行せずにメッセージを送信すると、意図しない挙動をすることになる
「メッセージを送信するとタイピングが終わったとみなす挙動」と「stopTyping するまで10秒ごとにAPIを叩く動作」
挙動としてはメッセージを送信するとタイピング表示が無くなるが、最大10秒後に復活する