Так что в основном я не понял идею ответа, с которой лучше согласиться. Класс? потому что вы подробно это описали. Но запутался в то же время, как вы упомянули "вы, возможно, соблазн" Так что, если мне придется сравнивать все свойства, а не просто свойства плавания, как в документах для охранников типа?

исал этот код

interface Foo {
    abcdef: number;
}

let x: Foo | string;

if (x instanceof Foo) {
    // ...
}

Но TypeScript дал мне эту ошибку:

'Foo' only refers to a type, but is being used as a value here.

Почему это происходит? я думал чтоinstanceof мог бы проверить, имеет ли мое значение заданный тип, но TypeScript, кажется, не нравится это.

Ответы на вопрос(1)

Ваш ответ на вопрос