When working with data from APIs or user input, runtime type checking helps prevent errors by verifying data shapes before using them.
💼 Career
Many jobs require validating external data safely. Knowing runtime type checking strategies in TypeScript is useful for frontend and backend development.
Progress0 / 4 steps
1
Create the user data object
Create a constant object called userData with these exact properties and values: name as "Alice" (string), age as 30 (number), and isMember as true (boolean).
Create a constant array called expectedProps containing the strings "name", "age", and "isMember".
Typescript
Hint
Use const expectedProps = ["name", "age", "isMember"];
3
Write a runtime type check function
Write a function called isValidUser that takes a parameter obj of type any and returns true if obj has all properties in expectedProps with types string for name, number for age, and boolean for isMember. Otherwise, return false. Use typeof checks inside the function.
Typescript
Hint
Check each property with typeof obj.property === "type" and combine with &&.
4
Print the runtime type check result
Write a console.log statement that prints the result of calling isValidUser(userData).
Typescript
Hint
Use console.log(isValidUser(userData)); to show the check result.
Practice
(1/5)
1. Which of the following is the best way to check if a variable value is a string at runtime in TypeScript?
easy
A. Use value === String
B. Use value instanceof String
C. Use typeof value === 'string'
D. Use Array.isArray(value)
Solution
Step 1: Understand the typeof operator
The typeof operator returns a string indicating the type of the operand. For strings, it returns 'string'.
Step 2: Compare with 'string'
Checking typeof value === 'string' correctly verifies if value is a string primitive.
Final Answer:
Use typeof value === 'string' -> Option C
Quick Check:
typeof string = 'string' [OK]
Hint: Use typeof for primitives like string or number [OK]
Common Mistakes:
Using instanceof for string primitives
Confusing Array.isArray with string check
Comparing variable directly to String constructor
2. Which syntax correctly checks if a variable data is an array at runtime in TypeScript?
easy
A. Array.isArray(data)
B. data instanceof Array
C. typeof data === 'array'
D. data.constructor === 'Array'
Solution
Step 1: Recall the standard array check method
JavaScript and TypeScript provide Array.isArray() to check if a value is an array.
Step 2: Verify the correct usage
Calling Array.isArray(data) returns true if data is an array, false otherwise.
Final Answer:
Array.isArray(data) -> Option A
Quick Check:
Array.isArray([]) = true [OK]
Hint: Use Array.isArray() to check arrays safely [OK]
Common Mistakes:
Using typeof with 'array' (invalid)
Using instanceof which can fail across frames
Comparing constructor to string instead of function
3. What will be the output of this TypeScript code?
function isNumber(value: unknown): boolean {
return typeof value === 'number';
}
console.log(isNumber('123'));
console.log(isNumber(123));
medium
A. false true
B. true true
C. true false
D. false false
Solution
Step 1: Check typeof for '123'
For the string '123', typeof '123' returns 'string', so isNumber('123') returns false.
Step 2: Check typeof for 123
For the number 123, typeof 123 returns 'number', so isNumber(123) returns true.
Final Answer:
false true -> Option A
Quick Check:
typeof '123' = string, typeof 123 = number [OK]
Hint: typeof returns 'number' only for number primitives [OK]
Common Mistakes:
Assuming string '123' is a number
Confusing typeof results
Ignoring return boolean values
4. Identify the error in this runtime type check function and fix it:
function isStringArray(value: unknown): boolean {
return typeof value === 'string' && Array.isArray(value);
}
medium
A. No error, function is correct
B. Use Array.isArray(value) only, remove typeof check
C. Check should be typeof value === 'object' instead of 'string'
D. Check should be typeof value[0] === 'string' inside array
Solution
Step 1: Analyze the current condition
The function checks if value is both a string and an array, which is impossible.
Step 2: Correct the logic for string arrays
We should check if value is an array, then verify its elements are strings, e.g., typeof value[0] === 'string'.
Final Answer:
Check should be typeof value[0] === 'string' inside array -> Option D
Quick Check:
Array with string elements needs element type check [OK]
Hint: Check array type first, then element types inside [OK]
Common Mistakes:
Checking typeof array itself as 'string'
Ignoring element type checks
Assuming array is string without Array.isArray
5. You receive data of unknown type and want to safely check if it is an object with a numeric property id. Which runtime type checking strategy is best?
hard
A. Use Array.isArray(data) and check data.id
B. Check typeof data === 'object' and typeof data.id === 'number'
C. Check typeof data === 'string' and parse data.id
D. Use data instanceof Number to check id
Solution
Step 1: Confirm data is an object
Use typeof data === 'object' to ensure data is an object (and not null).
Step 2: Check the property type
Check typeof data.id === 'number' to confirm the id property is numeric.
Final Answer:
Check typeof data === 'object' and typeof data.id === 'number' -> Option B
Quick Check:
Object with numeric id needs both checks [OK]
Hint: Check object type then property type stepwise [OK]
Common Mistakes:
Using Array.isArray for objects
Checking string type for object
Using instanceof Number for primitives
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.