我有一個這樣的界面:
interface AggregateRoot<Primitives> {
toPrimitives(): { [key in keyof Primitives]: any }
}
我這樣實作它:
class Person implements AggregateRoot<Person> {
public name
public age
toPrimitives(): { [key in keyof Person]: any } {
return {
name: 'Tom',
age: 10
}
}
}
這也迫使我回傳密鑰“toPrimitives”
有誰知道如何避免這種情況?
uj5u.com熱心網友回復:
您可以修改回傳型別以排除任何函式型別:
interface AggregateRoot<Primitives> {
toPrimitives(): {
[K in keyof Primitives as Primitives[K] extends Function ? never : K]: any
}
}
toPrimitives(): {
[key in keyof Person as Person[key] extends Function ? never : key]: any
} {
return {
name: 'Tom',
age: 10
}
}
操場
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/479148.html
上一篇:如何更改物件屬性值打字稿?
