某UdemyでJavaScriptの講座を見ていて、初歩的コードをVSCodeで入力していた。
let name = 'Tim';
function hello(name){
console.log('HELLO' + name);
}
hello(name);
☝エディタの画面上では、最後のhello()の引数に取り消し線が表示されている。そして下のような注意書きが表示された。
'name' は非推奨です。ts(6385)
lib.dom.d.ts(18305, 5): この宣言はここで非推奨とマークされました。
const name: void
@deprecated
利用できるクイックフィックスはありません
動作自体は問題ないが非推奨だと怒られている。
JavaScriptについて、仕事で使っているのに体系的な知識がない私は、なんです……?これ…と同じ言葉で検索をかけた。下記の英語サイトと同じ現象の模様。
https://www.reddit.com/r/vscode/comments/ltonp7/name_is_deprecated_ts6385/
windowオブジェクトにすでにある変数nameをグローバルスコープで新たに定義しているので怒られているらしい。
回避方法としてはnameのスコープを限定するかnameをもっと固有の名称に変更するか、TypeScriptで記述する、など。
実務ではまず起きない現象だが気になったのでメモ。