TypeScriptのエラー type 'xxx' is not assignable to parameter of type 'never' への対処法

TypeScript, Web

( ´-`).。oO(この記事はだいたい 1 分くらいで読めるかも)

TypeScriptのコードで、配列を初期化して使おうとしたらコンパイラがこんなエラーを出力したことがある。

Argument of type 'string' is not assignable to parameter of type 'never'.

「assignable」は「割り当て可能」という意味(Google翻訳)だから、直訳すると

「string型の引数はnever型のパラメータに割り当てられません」

となる。

まったく意味がわからん。

調べてみると、配列変数で、要素の型を指定していないとこうなってしまうらしいことが分かった。

修正例はこうなる。

修正前

const s = (s: string) => {
  const ret = [];
  ret.push(s);
};

修正後

const s = (s: string) => {
  const ret : string[] = [];
  ret.push(s);
};

TypeScript, Web

Posted by もち