我有一个输入字段(文本区域),它接收以JSON格式表示的对象数组,我必须根据在TypeScript中创建的接口在运行时验证每个数组元素。
我创建了带有自定义类型roleType的接口Employee和Address
interface Employee {
name: string;
age: number;
email: string;
address?: Address;
role?: roleType;
}
interface Address{
city: string;
pinCode: number;
}
type roleType = 'Developer' | 'UI Designer';
有效的JSON:
[
{
"name": "John Doe",
"age": 25,
"email": "john@email.com",
},
{
"name": "Jane Doe",
"age": 23,
"email": "jane@email.com",
}
]
无效的 JSON:
[
{
"name": "John Doe",
"age": 25,
"language": "typescript",
},
{
"name": "Jane Doe",
"age": 23,
"email": "jane@email.com",
}
]
然后尝试使用一个名为checkArray的函数,像这样:
function checkArray(array: any[]) {
if (!Array.isArray(array)) {
return false;
}
for (let i = 0; i < array.length; i++) {
if (!(array[i] instanceof Employee)) {
return false;
}
}
return true;
}
但是这样做不起作用,因为接口Employee是一种类型,我们不能将其作为instanceof的值使用。
如何使用接口类型验证我的数组并生成适当的错误,而不使用任何外部库?