Это лучший способ:
let person1: Person = {name: '', surname: ''};
Но если вы хотите точно пустой объект, вы можете взломать его следующим образом:
let person1: Person = {} as Person;
Обновление после комментария:
Посмотрите на это unpredictableFunction
:
const unpredictableFunction = (): string|number:string[] => {
return Math.random() > 0.5 ? 'string' : Math.random() > 0.5 ? 9999 : ['1', '2', '3']
};
Может возвращать число, возвращать строку или массив строк
const person: Person = {name: '', surname: ''};
person.name = unpredictableFunction (); // this is a case you are talking about
В этом случае вы увидите
Type 'string | number | string[]' is not assignable to type 'string'.
Ответы:
Посмотрите на свой код и убедитесь, что вы присваиваете только свойства свойств Person,
Или обновите интерфейс, чтобы готов к другим значениям:
interface Person {
name: string | number | string[];
surname: string;
}