如何声明整个 MyCustomObject 接口(interface)可以回退到一个空对象?
interface MyCustomObject {
name: string,
age: number
}
下面的情况是安全的,它有名称和年龄的默认属性作为后备,但有时如果 obj
来自其他来源,如 api,它可以是其他类型,如空 {}甚至是一个空的 []
const obj: MyCustomObject = {
name: "",
age: 0
}
我试过了
interface MyCustomObject {
name: string,
age: number
} | {}
这样不行。
最佳答案
最正确的方法是建立联合
type IUnionType = MyCustomObject | {};
处理这个问题的其他方法是使每个属性都是可选的
interface MyCustomObject {
name?: string,
age?: number
}
或者创建一个可选的对象属性,其中在原始接口(interface)中定义了联合。
interface MyCustomObject2 {
obj: MyCustomObject | {}
}
关于javascript - typescript 在整个界面上未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61682749/