所以我有一个人物模型
export class Person {
name: string;
id: Number;
}
我想确保只有名称和ID是要定义的字段
所以当我像下面那样构造对象(方法1)
let person = new Person({name: 'john', id:2, invalidField: 'notAllowed'})
打字稿在上面不允许这样做
但是,如果我从后端获取数据,它将允许它构造如下对象(方法2)
let data: any = {name: 'john', id:2, invalidField: 'notAllowed'}// resp from backend
let person = new Person(data)
Typescript允许上述操作
是否有办法确保通过方法二构造对象无效?
我想要执行此操作的原因是,我可以创建单元测试以确保来自后端的数据符合我期望的格式
不知道这是否清楚我对打字稿还不是很陌生 如有任何疑问,请添加评论
也许在构造函数中进行一些运行时检查?