3
TypeScriptのインターフェイス宣言の内部に条件を設定することは可能ですか?私が探しているのは、最初のキーの値に基づいて、2番目のキーがこれらの値になると言う方法です。Javascript条件付き内部型スクリプトインターフェイス
例(非機能):
interface getSublistValue {
/** The internal ID of the sublist. */
sublistId: 'item' | 'partners';
/** The internal ID of a sublist field. */
if (this.sublistId === 'item') {
fieldId: 'itemname' | 'quantity';
}
if (this.sublistId === 'partners') {
fieldId: 'partnername' | 'location';
}
}
:たとえば
sublistIdとfieldIdが一致しない場合(つまり、 'item'と 'partnername')私が得ることは、私の 'someValue'が' const someValue:SublistItem | {if(someValue.sublistId === 'item'){} '条件に' location'があるという警告が表示されます。 'itemname'や' quantity'ではなく、私はすでにそれを知っています、なぜ私はその警告を受けるでしょうか? –
@JonLamb hmmm ...そのために表示されるエラーメッセージは役に立ちません。その場合、 'sublistId'は' partners 'だけであることを知っているので、 'item'をチェックするとエラーになります。 '' item''を '' partners''に置き換えると、それはうまくいきます。あなたがどこかから価値を受けていて、データが何であるか分からないシナリオを試してみてください。私は例を更新しました。 –