Open2
TypeScript の困った型エラーを解消したい
type X =
| { a: { x: null } }
| { a: { x: string } };
const a: { x: string | null } = { x: 'a' };
const x: X = { a };
とすると下のようなエラーが出る
Type '{ a: { x: string | null; }; }' is not assignable to type 'X'.
Type '{ a: { x: string | null; }; }' is not assignable to type '{ a: { x: string; }; }'.
The types of 'a.x' are incompatible between these types.
Type 'string | null' is not assignable to type 'string'.
Type 'null' is not assignable to type 'string'.ts(2322)
X
の型がこんな感じになってたら問題ない(string
や null
のプロパティを持つ object
ではなく、 string
や null
そのもの)
type X =
| { a: null }
| { a: string };
const a: string | null = 'a';
const x: X = { a };