document.write()の是非はありますが、エディタはあくまでソース単体で見たときにdocumentがないという警告を出しているだけです。
Documentはそもそも「ブラウザーに読み込まれたウェブページそのもの」を表すので、.jsファイル単体で見たときに「誰からどこから読み込まれているか」は見えない状態です。
見えない=読み込まれるウェブページ(HTML)が認識できない ための警告です。
HTMLをブラウザからアクセスすれば問題なく動くはずです。
document.まで打てばサジェスチョンで使える機能一覧がでてきますよね。
JavaScriptとしては認識しているということになります。
※ちなみに手元で試しましたが、getElementById()などでも同じような警告( ESLint のError)は出ました。
紛らわしい、気になる などであれば、いったんhtml内に<script>タグで書き、動作確認してから.jsにうつしても良いかもしれません(手間ですが)