gpt4 book ai didi

javascript - typescript 在整个界面上未定义

转载 作者:行者123 更新时间:2023-12-05 05:03:26 24 4
gpt4 key购买 nike

如何声明整个 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 | {}
}

examples

关于javascript - typescript 在整个界面上未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61682749/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com