◆ エクスポートする関数の引数や返り値情報を書いておく
◆ VSCode で表示してくれる
◆ 別ファイルなのでソースコード中に邪魔な型定義が現れずに済む

TypeScript は読みづらいし書くのが面倒なので書こうとは思わないですが .d.ts だけ書いておくのはありかなと思いました
.d.ts ファイルは型定義の情報だけを別ファイルにしたものです
.js ファイルでも同名の .d.ts ファイルを用意して関数の引数と返り値の情報を書いておくと VSCode で表示してくれます

モジュールの内部的なところまで型情報は不要ですがエクスポートする関数の引数と返り値の情報くらいはあると便利です
簡単な例を用意してみます

[foo.js]
export const foo = x => x + 1

[foo.d.ts]
export declare function foo(x: number): number

[index.js]
import { foo } from "./foo.js"

console.log(foo(1))

foo.js というモジュールを用意して 数値を引数にして数値を返す foo 関数をエクスポートします
index.js でこれをインポートして使おうとしたときに 引数なんだっけと思っても VSCode では any としか表示されません

foo.d.ts ファイルを用意して foo 関数の型を書くと number と表示されるようになります

(alias) function foo(x: number): number
import foo

実際に npm パッケージで index.d.ts が用意されてるパッケージが多くて .d.ts ファイルは知らないうちに使ってるものです
それらと同じで補助的な情報として出るだけで強制やチェックされるものではないです
なのでコメントと同じでソースコードだけ変えて型定義を変更するのを忘れて古くなってるとかはありそうです

個人的にこれの良いところは別ファイルというところです
TypeScript のコードを見ると JavaScript よりも不要な情報が多すぎて読みづらいです
それは型関連の情報で 処理の流れを読むときには基本的に不要なものです
x.y プロパティにアクセスしてるなら x は y プロパティを持つわけで x が A クラスのインスタンスだろうが B クラスのインスタンスだろうがどうでもいいことです
なので基本は JavaScript のように処理だけを書いていてスッキリとした見た目がいいのですが 処理を書き換えたりする場合は型情報があったほうが嬉しいこともあります
そういうときに .d.ts ファイルなら別ファイルなので処理を見たいときにはスッキリとした JavaScript で見られて 補助的な型情報を見たいときは別ファイルで型情報を見ることができます