检查Typescript对象中的属性是否为可选

检查Typescript对象中的属性是否为可选,typescript,reflection,interface,Typescript,Reflection,Interface,我正在尝试基于模型的接口创建动态表单验证 我的测试模型界面如下所示: IRole { id: string; name: string; description?: string; } 我有两个角色实例 无需说明: const role1: IRole = { grants: ['admin:*']; name: 'Admin'; } const role2: IRole = { grants: ['owner:*']; name: 'User';

我正在尝试基于模型的接口创建动态表单验证

我的测试模型界面如下所示:

IRole {
   id: string;
   name: string;
   description?: string;
}
我有两个角色实例

无需说明:

const role1: IRole = {
   grants: ['admin:*'];
   name: 'Admin'; 
}
const role2: IRole = {
   grants: ['owner:*'];
   name: 'User';
   desciption: 'Average Joe';
}
附说明:

const role1: IRole = {
   grants: ['admin:*'];
   name: 'Admin'; 
}
const role2: IRole = {
   grants: ['owner:*'];
   name: 'User';
   desciption: 'Average Joe';
}
表单的必填字段为:

[grants, name]
[description]
选项字段为:

[grants, name]
[description]
界面有我需要的详细信息。
这似乎不可能做到,但我想在放弃这种方法之前与其他人核实一下。

首先要了解的是,TS接口和类型在运行时并不存在。如果(MyInterface具有可选参数),则无法执行
。您可以在此处找到一些选项: