[解決済み] typescript インターフェースは、次の2つのプロパティのうちどちらかが存在する必要があります。
2022-04-24 01:59:24
質問
を持つようなインターフェイスを作成しようとしています。
export interface MenuItem {
title: string;
component?: any;
click?: any;
icon: string;
}
-
を要求する方法はありますか?
component
またはclick
を設定します。 - 両方のプロパティを設定できないようにする方法はありますか?
どのように解決するのですか?
型は条件論理を持たず、互いに依存することができないので、単一のインターフェースでは無理ですが、インターフェースを分割することで可能です。
export interface BaseMenuItem {
title: string;
icon: string;
}
export interface ComponentMenuItem extends BaseMenuItem {
component: any;
}
export interface ClickMenuItem extends BaseMenuItem {
click: any;
}
export type MenuItem = ComponentMenuItem | ClickMenuItem;
関連
-
[解決済み】tsconfigファイルにおけるesModuleInteropの理解
-
[解決済み] TypeScript getting error TS2304: cannot find name ' require'.
-
[解決済み] Typescriptでオブジェクトのプロパティを結合する方法は?
-
[解決済み] TypeScriptでオブジェクトに動的にプロパティを割り当てるには?
-
[解決済み] クラス定数を実装するには?
-
[解決済み] Typescript によるインターフェース型チェック
-
[解決済み】TypeScriptの関数のオーバーローディング
-
[解決済み】TypeScriptのインターフェイスで特定の文字列を要求する方法
-
[解決済み】TypeScriptのインターフェイスプロパティの型を "抽出 "する方法はあるのか?
-
[解決済み] Typescript インターフェース内のすべてのプロパティをオプションにする
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] グローバル定数の定義
-
[解決済み] TypeScriptで、「extends keyof」と「in keyof」はどういう意味ですか?
-
[解決済み] TSがモジュールを見つけ出せない
-
[解決済み] TypeScript で `window` に新しいプロパティを明示的に設定するにはどうすればよいですか?
-
[解決済み] チェックした後に○○の表現が変わっている
-
[解決済み】TypeScriptのインターフェースと型について
-
[解決済み】オブジェクトの配列を定義するにはどうしたらいいですか?
-
[解決済み】タイプからプロパティを除外する
-
[解決済み】タイプライター。TS7006: パラメータ 'xxx' は暗黙のうちに 'any' 型を持つ。
-
[解決済み] Typescript Interface - 「どちらか一方」のプロパティを必須とすることは可能か?