Published on

Argument of type not assignable to parameter of type neverエラーの解決方法

Authors
  • avatar
    Name
    ssu
    Twitter

Argument of type 'string' is not assignable to parameter of type 'never' TS2345 と出た時の解決方法を紹介します。

このエラーは代入先の配列との型があっていないことにより生じます。 例えば、下記のような場合にはArgument of type '[string, string, string, string, string]' is not assignable to parameter of type '[]'.のようなエラーがでます。

const foo = (result: []) => { const arr = [] for (let i = 0; i <= 2; i++) { arr.push(result[i]) } } foo(['h', 'e', 'l', 'l', 'o'])

そのため、string型のデータを入れるのであれば、下記のように型を指定してあげれば解決できます。

const foo = (result: string[]) => { const arr = [] for (let i = 0; i <= 2; i++) { arr.push(result[i]) } } foo(['h', 'e', 'l', 'l', 'o'])

arryにstring型をつけてやることでも解決できます。ちなみに、この場合は両方につけるのがベストです。

参考: What is "not assignable to parameter of type never" error in TypeScript?