Как получить тип переменной в TypScript?

У меня переменная.

abc:number|string;

Как я могу проверить его тип? Я хочу сделать что-то вроде ниже:

if (abc.type === "number") {
    // do something
}

Ответ 1

Для:

abc:number|string;

Используйте оператор JavaScript typeof:

if (typeof abc === "number") {
    // do something
}

ТипScript понимает typeof 🌹

Это называется типом.

Больше

Для классов вы должны использовать instanceof например

class Foo {}
class Bar {} 

// Later
if (fooOrBar instanceof Foo){
  // TypeScript now knows that 'fooOrBar' is 'Foo'
}

Существуют и другие типы охранников, например, in т.д. Https://basarat.gitbooks.io/typescript/content/docs/types/typeGuard.html

Ответ 2

Я хотел бы добавить, что TypeGuards работает только с строками или цифрами, если вы хотите сравнить объект use instanceof

if(task.id instanceof UUID) {
  //foo
}