typescriptの「型 ‘string[]’ を型 ‘[string, string]’ に割り当てることはできません。」エラー

型 'string[]' を型 '[string, string]' に割り当てることはできません。ターゲットには 2 個の要素が必要ですが、ソースに指定する数はそれより少なくても構いません。

typescriptの変数に先にtypeを設定して、それをtupleにするとエラーになる場合があります。

型 ‘string[]’ を型 ‘[string, string]’ に割り当てることはできません。
ターゲットには 2 個の要素が必要ですが、ソースに指定する数はそれより少なくても構いません。

typescriptの「型 ‘string[]’ を型 ‘[string, string]’ に割り当てることはできません。」エラー発生理由

stringListに二つのstringがあると仮定します。
その値をtupleに入れようとするとエラーになります。

const stringList = ["jin", "young"];
const tuple: [string, string] = stringList;

string[]は[string, string]の部分集合じゃないからです。
反対なら可能です。

typescriptの「型 ‘string[]’ を型 ‘[string, string]’ に割り当てることはできません。」エラー解決方法

  1. stringListとtuple変数のtypeを同じく設定します。
    const stringList: [string, string] = ["jin", "young"];
    const tuple: [string, string] = stringList;
    
  2. stringListをtypeを[string, string]に指定して、tupleのtypeをstring[]にします。
    const stringList: [string, string] = ["jin", "young"];
    const tuple: string[] = stringList;
    

typescriptはtypeの設定が厳しです。
なので、typeを設定しない時にはどういうtypeになるのか、ちゃんと認識して使いましょう。
それが難しい場合は事前にtypeを設定して使えばいいです。