Typescriptで型を拡張することは可能ですか? 質問する

Typescriptで型を拡張することは可能ですか? 質問する

次のようなタイプがあるとします。

type Event = {
   name: string;
   dateCreated: string;
   type: string;
}

私は今この型を拡張したい、つまり

type UserEvent extends Event = {
   UserId: string; 
}

これは機能しません。どうすればいいですか?

ベストアンサー1

このキーワードはextendsインターフェースとクラスにのみ使用できます。

追加のプロパティを持つ型を宣言したい場合は、次のようにします。交差点タイプ:

type UserEvent = Event & {UserId: string}

TypeScript 2.2のアップデート、オブジェクトのような型を拡張するインターフェースを持つことが可能になった型がいくつかの制限を満たす場合:

type Event = {
   name: string;
   dateCreated: string;
   type: string;
}

interface UserEvent extends Event {
   UserId: string; 
}

逆の場合は機能しません。構文を使用する場合はUserEvent、 ではなくインターフェースとして宣言する必要があります。typeextends

そして、まだ使用できないextend 任意の型たとえば、Event制約のない型パラメータの場合は機能しません。

おすすめ記事