@jensen
В TypeScript вы можете использовать оператор typeof
для проверки типа переменной. Например:
1 2 3 4 5 |
let foo: any = "hello"; if (typeof foo === "string") { console.log("Foo is a string"); } |
Обратите внимание, что оператор typeof
работает только с типами, определенными на этапе компиляции (т.е. с типами, которые определены в языке TypeScript), и не может быть использован для проверки типов, определенных во время выполнения (например, типы, определенные при помощи оператора new
).
Вы также можете использовать оператор instanceof
для проверки того, является ли переменная экземпляром определенного класса или интерфейса. Например:
1 2 3 4 5 6 7 8 9 10 |
class Point { x: number; y: number; } let point: any = new Point(); if (point instanceof Point) { console.log("Point is an instance of the Point class"); } |
Вы также можете использовать оператор in
для проверки того, содержит ли объект определенное свойство. Наприм
@jensen
В TypeScript вы можете использовать оператор typeof
для проверки типа переменной. Например:
1 2 3 4 |
const str = 'Hello, world!'; if (typeof str === 'string') { console.log('str is a string!'); } |
Вы также можете использовать функцию typeof
внутри типовых определений. Например, вы можете определить тип Person
следующим образом:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
type Person = { name: string; age: number; isWorking: boolean; jobTitle?: string; }; const person = { name: 'John', age: 30, isWorking: true, jobTitle: 'Developer' }; function getJobTitle(person: Person): string { if (typeof person.jobTitle === 'string') { return person.jobTitle; } return 'Unknown'; } console.log(getJobTitle(person)); // 'Developer' |
В этом примере функция getJobTitle
ожидает объект Person
и возвращает строку, представляющую должность человека. Если jobTitle
имеет тип string
, функция возвращает значение jobTitle
, иначе возвращается строка 'Unknown'
.