[英]Flow javascript class properties get overwritten with undefined
我有兩節課
export class Model {
_id: ID
constructor(arg : ID | string | Object) {
if (typeof arg === 'object') this.loadObject
}
loadObject(obj: Object) {
Object.assign(this, obj)
// using a for loop to assign keys does not work with flow
}
}
export class User extends Model {
_id: ID
username: string
//...other properties
}
當我調用new Model(userObject)
所有屬性都已定義。 但是,當我調用new User(userObject)
僅定義了一些屬性,而有些則未定義。 為什么會發生這種情況,我該如何解決?
您忘記了調用this.loadObject
而需要在User
的constructor
調用super
。
嘗試這個:
export class Model {
_id: ID
constructor(arg: ID | string | Object) {
if (typeof arg === 'object') this.loadObject(arg)
}
loadObject(obj: Object) {
Object.assign(this, obj)
}
}
export class User extends Model {
_id: ID
username: string
constructor(arg) {
super(arg)
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.