回答:
キーワードextendsは、インターフェースとクラスにのみ使用できます。
追加のプロパティを持つ型を宣言するだけの場合は、intersection typeを使用できます。
type UserEvent = Event & {UserId: string}
TypeScript 2.2のUPDATEでは、型がいくつかの制限を満たす場合、オブジェクトのような型を拡張するインターフェースを持つことが可能になりました。
type Event = {
name: string;
dateCreated: string;
type: string;
}
interface UserEvent extends Event {
UserId: string;
}
逆方向には機能しません。構文を使用UserEventするtype場合は、インターフェイスとして宣言する必要がありextendsます。
またextend 、任意の型で使用することは依然として不可能です。たとえば、Event型パラメータが制約なしの場合は機能しません。
interface A<T> extends B<T> {blar}インターフェースは、静的に既知のメンバーを持つオブジェクトタイプまたはオブジェクトタイプの共通部分のみを拡張できます
interface Identifiable<T> extends T { id: string }を実行すると、「インターフェイスは、静的に既知の
あなたが達成しようとしていることは、
interface Event {
name: string;
dateCreated: string;
type: string;
}
interface UserEvent extends Event {
UserId: string;
}
タイプを定義した方法では継承を指定できませんが、artemが指摘したように、交差タイプを使用して同様のことを実現できます。
interfaceでも私が実際にaを意味しているとき、私はその言葉が好きではありませんtype
typeキーワードを定義するために使用されるタイプのエイリアスではなく、インターフェースまたはクラスを。