私はIUser
を使用してdata
のサブセットと、このインターフェイスを使用してオブジェクトのサブセットを取る方法は?
let user = subset<IUser>(data);
// user is now { name: "John", age: 25 }
// can safely insert user in the db
よう
isAdmin
プロパティを削除したい私は、このクラスおよびインタフェース
class User {
name: string;
age: number;
isAdmin: boolean;
}
interface IUser {
name: string;
age: number;
}
を持っている。そして、私はどこか
const data = {
name: "John",
age: 25,
isAdmin: true
}
からこのJSONオブジェクトを取得すると仮定
私の質問は、どのようにTypeScriptでその機能を実装するのですか? typescriptですインターフェイスは、(subset
が呼び出されたときです)実行時には存在しないので、あなたがIUser
インタフェースを使用することはできません
function subset(obj: IUser) {
return {
name: obj.name,
age: obj.age
}
}
:より優れていることを行うための方法はありません
function subset<T>(obj: object) {
// keep all properties of obj that are in T
// keep, all optional properties in T
// remove any properties out of T
}