1
2つのタイプのいずれかを実行する配列が必要です.AまたはB(BがAを拡張しています)どうすればいいですか?2つのインターフェイスのTypescript結合であいまいなコードが可能
interface Foo {
x: string;
}
interface Bar extends Foo {
y: string;
z: number;
}
type X = Foo | Bar;
const arr: Array<X> = [
{ x: 'Hello' }, // implements Foo
{ x: 'John', y: 'Doe', z: 42 }, // implements Bar
{ x: 'Hello', y: 'World' }, // i want this to throw an error
];
感謝:)
私が 'const jane:Foo = {x: 'Doe'、y:4}'と書くと、エラーが発生します。同様に、配列が 'const arr:Array'であれば、arr [1]とarr [2]はスローします。私は 'y? :string'と 'z? :string'を 'Foo'の宣言に変換します。ありがとう:) –
ああ、ビットランダムですが、コンパイラは、割り当てのようないくつかの場所で正確なタイプをチェックします。 – AlexG