我如何获得一个类的属性作为对象文字类型?



下面我有一个扩展JokeSignup类。

我想要的是v有一个类型错误,用户名不能是一个数字,但通用的ObjectProps不能正确地获得Signup的道具。

操场上联系

type Constructor = new (...args: any[]) => {}
type ObjectProps<T extends Constructor, V extends Constructor | undefined = undefined> = Omit<{
[k in keyof T]: T[k]
}, keyof V>
class Joke {
anythingNotInOriginal: boolean = true
}
class Signup extends Joke {
email: string = ''
username: string = ''
password: string = ''
}
type x = ObjectProps<typeof Signup, typeof Joke>
const v: x = {
username: 1
}

如何让x具有以下签名:

{ email: string, username: string, password: string }

是从Signup类派生出来的?

正如@jcalz在评论中提到的,这是可行的

const v: Omit<Signup, keyof Joke> = {
email: '',
username: '',
password: ''
}

相关内容

  • 没有找到相关文章

最新更新