Способ отличить тип объекта TypeScript от типа класса - PullRequest
1 голос
/ 18 февраля 2020

Давайте определим класс в машинописи:

class User {
  public id: number;
  public name: string;
  public toString(): string{
    return name + id;
  }
}

Как отличить класс от обычного объекта в TypeScript?

const user1: User = new User();
const user2: User = {id: 1, name: 'John'};

Они оба действительны в TypeScript, но user1 экземпляр класса и user2 - это объект.

Я спрашиваю об этом, потому что у меня возникают проблемы с пакетом TypeORM, где я смешиваю объекты и экземпляры сущностей, и он начинает очень грязно, и я не всегда уверен, что У меня есть экземпляр класса или объект.

Ответы [ 2 ]

0 голосов
/ 18 февраля 2020

Метод 1:

Вы можете использовать instanceof User, чтобы проверить, является ли он экземпляром класса.

Метод 2:

Я использую преобразователь классов для обработки такого сценария ios, перед отправкой преобразуйте экземпляр в класс, используя метод plainToClass данные в хранилище.

0 голосов
/ 18 февраля 2020

Ответ:

Как отличить класс от простого объекта в TypeScript?

Вы можете использовать instanceof для различения guish двух:

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/instanceof

Например, user1 instanceof User должно быть истинным, но не для user2.

...