Note: If you're new to TypeScript, check our Getting Started with TypeScript tutorial first.
In TypeScript, the typeof operator can be used in two ways:
- At runtime, it returns the type of a value as a string (
string,number, etc.). - At compile-time, it lets you reuse the type of an existing variable.
 
Let;s see an example,
let word: string = "hello";
// Compile-time use (type copying)
let typeOfWord: typeof word;  // typeOfWord is of type 'string'
// Runtime use (type checking)
console.log(typeof word);     
Output
string
Here, typeof word copies the type string from the word variable and assigns it to typeOfWord.
typeof Types
At runtime, the typeof operator returns one of the following string values:
| Types | typeof Result | 
|---|---|
String | 
"string" | 
Number | 
"number" | 
BigInt | 
"bigint" | 
Boolean | 
"boolean" | 
Object | 
"object" | 
Symbol | 
"symbol" | 
undefined | 
"undefined" | 
null | 
"object" | 
| function | "function" | 
typeof Example
Example 1: typeof for String
const str: string = 'Hello';
console.log(typeof str); // string
Example 2: typeof for Number
const num: number = 42;
console.log(typeof num); // number
Example 3: typeof for Boolean
const flag: boolean = true;
console.log(typeof flag); // boolean
Example 4: typeof for Object
const obj: { name: string } = { name: 'Sam' };
console.log(typeof obj); // object
Example 5: typeof for Function
function greet(): void {}
console.log(typeof greet); // function
Uses of typeof operator
1. Debugging
You can use typeof to check the type of a variable, which helps with debugging or validating types at runtime.
let message: string = "Hello, World!";
console.log(typeof message); // string
2. In Type Definition
You can use typeof at compile-time to refer to the type of a variable in a type definition.
const user = { name: "John", age: 30 };
type UserType = typeof user;
let anotherUser: UserType = { name: "Alice", age: 25 };
3. In Conditional Statements
You can use typeof in conditional statements to perform different actions based on the type of a variable.
let value: string | number = "Hello";
if (typeof value === "string") {
  console.log("The value is a string");  // The value is a string
}
else if (typeof value === "number") {
  console.log("The value is a number"); 
}
More on TypeScript typeof Operator
Just like in JavaScript, typeof can be used at runtime to check the type of a value.
But TypeScript also adds a powerful feature — you can use typeof at compile time to refer to the type of a variable.
const age = 25;
console.log(typeof age); // number
type AgeType = typeof age;
// AgeType is now inferred as: number
Here, TypeScript shows how typeof checks the type at runtime and also extracts a variable's type at compile time.