例如,我有以下界面
export interface IUserCredentials {
email: string;
password: string;
}
我知道我会将这个和许多其他数据类型存储在数据库中,在这些数据库中,他们将被分配id
,dateCreated
和{{1} }
我不想为每一个dateModified
编写一个接口,而是想一次性写出来,比如:
IDBRecord
当然,这是不可能的,因为我无法在界面定义之外引用泛型类型。
有人能想到办法吗?
答案 0 :(得分:1)
您可以使用类型(此处为交集类型):
type DBRecord<T> = T & {
id: number;
dateCreated: Date
dateModified: Date
}
export interface IUserCredentials {
email: string;
password: string;
}
function foo(entity: DBRecord<IUserCredentials>) {
...
}
演示:typescript playground example
供参考,请参阅advanced types in typescript。