我正在尝试将JSON
转换为Typescript中的Interface Type。这是我指的JSON
:
{
Person: {
createPerson: async () => true,
updatePerson: async () => true
}
}
现在,我想出了自己的界面。我想知道我是否做对了。
interface Persons {
Person: {
createPerson: Promise<boolean>,
updatePerson: Promise<boolean>
}
}
答案 0 :(得分:0)
您的代码在技术上正确无误,但绝对有改进的余地。
1)首先,您应该为较小的实体创建一个接口。这是Person
:
interface Person {
}
2)现在,关于Person
的成员,他们在您的代码中很奇怪。请记住,Person
接口描述了个人实体的实例。换句话说,界面应描述现有或创建的人员。因此,createPerson
成员意义不大。但是updatePerson
可以,但是由于我们已经知道人员上下文,因此无需将“人员”部分保留在那里。因此应该只是update
:
interface Person {
update: () => Promise<boolean>
}
3)现在关于Persons
。不需要这样的接口。而且,您不能有一个代表其他接口数组的接口。但是,您可以根据需要创建类型别名:
type Persons = Person[]
但是在大多数情况下,最好只使用Person[]
,因为它的抽象程度要低一些。
答案 1 :(得分:0)
您可以使用as
关键字:
interface Persons {
Person: {
createPerson: Promise<boolean>,
updatePerson: Promise<boolean>
};
}
let person = {
'Person': {
createPerson: Promise.resolve(true),
updatePerson: Promise.resolve(true)
}
} as Persons; // <-- example of using as