前提・実現したいこと
TypeScriptの共用体で質問があります
これはわかる
type A = { id: number, name: string } type B = { id: number } type AandB = A[] | B[] const func = (props: AandB) => { props.map(item => item); //型エラーが発生する }
- 上記のように、配列と配列の共用体に対してmapを使うとするとエラーになるのはわかります。
- あくまで共用体の型に対してmapをしようとしているので
(A | B)[]
にすれば型エラーは消えます。
type A = { id: number, name: string } type B = { id: number } type AandB = (A| B)[] const func = (props: AandB) => { props.map(item => item); // OK }
これがわからない
type A = { id: number } type B = { id: number } type AandB = A[] | B[] const func = (props: AandB) => { props.map(item => item); // 型エラーがおきない!?!? }
- 共用体に対してmapしているのに、型エラーがおきません。
- 共用体元の構造体が同じだと型エラーにならないんですかね。。?
- 上の例と違って型エラーが起きない原因が知りたいです。
回答1件
あなたの回答
tips
プレビュー