The any type allows a variable to hold any value without type checking. It disables TypeScript's type safety for that variable.
Click to reveal answer
beginner
What is the unknown type in TypeScript?
The unknown type represents any value but requires type checking before using it. It is safer than any because it forces you to check the type before operations.
Click to reveal answer
intermediate
How does unknown improve safety compared to any?
unknown forces you to check the type before using the value, preventing errors. any skips checks and can cause runtime errors.
Click to reveal answer
intermediate
Can you assign a value of type any to a variable of type unknown?
Yes, you can assign any to unknown because unknown accepts any value safely.
Click to reveal answer
intermediate
Can you assign a value of type unknown to a variable of type any?
Yes, unknown can be assigned to any because any accepts all types without checks.
Click to reveal answer
Which type requires you to check the type before using the value?
Aany
Bstring
Cunknown
Dnumber
✗ Incorrect
unknown requires type checks before usage, making it safer than any.
What happens if you use any type in TypeScript?
AYou can assign any value and use it without checks
BTypeScript enforces strict type checks
CYou must check the type before use
DIt only accepts string values
✗ Incorrect
any disables type checking and allows any value without restrictions.
Can you assign a value of type unknown directly to a variable of type string?
ANo, you must check or cast first
BYes, always
COnly if the value is a string literal
DOnly in JavaScript, not TypeScript
✗ Incorrect
You must check or cast unknown before assigning it to a specific type like string.
Which type is safer to use when you don't know the exact type yet?
Aany
Bvoid
Cnever
Dunknown
✗ Incorrect
unknown is safer because it forces type checks before use.
What is a key difference between any and unknown?
A<code>any</code> requires type checks, <code>unknown</code> does not
B<code>unknown</code> requires type checks, <code>any</code> does not
CBoth behave exactly the same
D<code>any</code> is safer than <code>unknown</code>
✗ Incorrect
unknown requires type checks before use, while any disables checks.
Explain the difference between any and unknown types in TypeScript.
Think about safety and when you can use the value without checks.
You got /4 concepts.
When should you prefer unknown over any in your TypeScript code?
Consider safety and error prevention.
You got /4 concepts.
Practice
(1/5)
1. What is the main difference between unknown and any types in TypeScript?
easy
A. unknown requires type checking before use, any does not.
B. any requires type checking before use, unknown does not.
C. unknown and any behave exactly the same.
D. any is safer than unknown.
Solution
Step 1: Understand unknown behavior
unknown means the value can be anything, but you must check its type before using it to avoid errors.
Step 2: Understand any behavior
any disables type checking, so you can use the value without checks, which can cause runtime errors.
Final Answer:
unknown requires type checking before use, any does not. -> Option A
Quick Check:
unknown = safe, any = unchecked [OK]
Hint: Remember: unknown forces checks, any skips them [OK]
Common Mistakes:
Thinking any is safer than unknown
Assuming unknown allows direct use without checks
Believing unknown and any behave the same
2. Which of the following is the correct way to assign a value of type unknown to a variable of type string?
easy
A. let a: unknown = "hello"; let b: string = a as string;
B. let a: unknown = "hello"; let b: string = a.toString();
C. let a: unknown = "hello"; let b: string = a + '';
D. let a: unknown = "hello"; let b: string = a;
Solution
Step 1: Understand assignment rules for unknown
You cannot assign unknown directly to a more specific type without a type assertion or check.
Step 2: Check options for correct syntax
let a: unknown = "hello"; let b: string = a as string; uses a type assertion as string, which is the correct way to tell TypeScript the value is a string.
Final Answer:
let b: string = a as string; -> Option A
Quick Check:
Use as to convert unknown safely [OK]
Hint: Use 'as' to convert unknown to a specific type [OK]
Common Mistakes:
Assigning unknown directly without assertion
Using incorrect type assertion syntax
Calling methods on unknown without checks
3. What will be the output of the following TypeScript code?
let value: unknown = 42;
if (typeof value === 'number') {
console.log(value + 8);
} else {
console.log('Not a number');
}
medium
A. TypeError at runtime
B. Not a number
C. 50
D. Compilation error
Solution
Step 1: Check the type of value
The variable value is unknown but assigned 42, a number.
Step 2: Evaluate the if condition and output
The condition typeof value === 'number' is true, so it logs value + 8 which is 42 + 8 = 50.
Final Answer:
50 -> Option C
Quick Check:
Type check passes, output is 50 [OK]
Hint: Check type before using unknown to avoid errors [OK]
Common Mistakes:
Assuming unknown can be used without type check
Expecting runtime error without type check
Confusing unknown with any behavior
4. Identify the error in this TypeScript code snippet:
let data: unknown = 'hello';
let length: number = data.length;
medium
A. No error, code runs fine.
B. Cannot access property 'length' on type 'unknown'.
C. Type 'string' is not assignable to type 'unknown'.
D. Variable 'length' should be type 'string'.
Solution
Step 1: Understand property access on unknown
You cannot access properties directly on a variable typed as unknown without type checking or assertion.
Step 2: Identify the error message
Trying to access data.length causes a compile-time error: "Cannot access property 'length' on type 'unknown'."
Final Answer:
Cannot access property 'length' on type 'unknown'. -> Option B
Quick Check:
Accessing unknown properties causes error [OK]
Hint: Check type before accessing unknown properties [OK]
Common Mistakes:
Assuming unknown behaves like any
Ignoring compiler error on property access
Wrongly typing variables
5. You receive data from an external API typed as any. You want to safely use it as a string only if it really is a string. Which approach is best?
hard
A. Assign the any data directly to a string variable.
B. Cast the any data to unknown and then to string without checks.
C. Ignore types and use the data as is.
D. Use a type guard to check if data is a string before using it.
Solution
Step 1: Understand risks of any
any disables type checking, so using it directly can cause runtime errors if the data is not as expected.
Step 2: Use type guard for safety
Checking the type with a type guard (e.g., typeof data === 'string') ensures safe usage only when the data is a string.
Final Answer:
Use a type guard to check if data is a string before using it. -> Option D
Quick Check:
Type guard ensures safe use of any data [OK]
Hint: Always check any data type before use [OK]
Common Mistakes:
Assigning any directly without checks
Casting any to unknown then string without validation
Ignoring type safety for external data
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.