машинописный текст undefined для всего интерфейса - PullRequest
2 голосов
/ 08 мая 2020

Как объявить, что весь интерфейс MyCustomObject может откатиться к пустому объекту?

interface MyCustomObject {
   name: string, 
   age: number
}

Ниже приведен безопасный случай, он имеет свойство по умолчанию имени и возраста как резерв, но иногда, если obj является из другого источника, такого как api, это может быть какой-то другой тип, например пустой {} или даже пустой []

const obj: MyCustomObject = {
    name: "",
    age: 0
}

Я пробовал это

interface MyCustomObject {
   name: string, 
   age: number
} | {}

это не работает туда.

1 Ответ

1 голос
/ 08 мая 2020

наиболее правильный способ - создать объединение

type IUnionType = MyCustomObject | {};

другие способы справиться с этим - сделать каждое свойство необязательным

interface MyCustomObject {
   name?: string, 
   age?: number
}

Или создать необязательное свойство объекта, где объединение определено в исходном интерфейсе.

interface MyCustomObject2 {
    obj: MyCustomObject | {}
}

примеры

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...