📖 Scenario: You are building a simple Deno script that uses TypeScript without any extra setup. Deno supports TypeScript natively, so you can write typed code directly.
🎯 Goal: Create a TypeScript file in Deno that defines a typed variable, uses a typed function, and runs without additional configuration.
📋 What You'll Learn
Create a typed variable called greeting of type string with the value 'Hello, Deno!'
Create a function called shout that takes a message parameter of type string and returns the message in uppercase
Call the shout function with greeting and assign the result to a variable called loudGreeting
Export the loudGreeting variable
💡 Why This Matters
🌍 Real World
Deno is a modern runtime that lets you write TypeScript code directly without configuring compilers. This project shows how to write and export typed code simply.
💼 Career
Many modern backend and scripting jobs use Deno or TypeScript. Knowing how to write and export typed code in Deno is a valuable skill.
Progress0 / 4 steps
1
Create a typed string variable
Create a variable called greeting of type string and set it to the value 'Hello, Deno!'.
Deno
Hint
Use const greeting: string = 'Hello, Deno!'; to declare a typed string variable.
2
Create a typed function
Create a function called shout that takes a parameter message of type string and returns a string. The function should return the uppercase version of message.
Deno
Hint
Define function shout(message: string): string and use message.toUpperCase() inside.
3
Call the function and assign the result
Call the shout function with the variable greeting and assign the result to a new variable called loudGreeting.
Deno
Hint
Use const loudGreeting: string = shout(greeting); to call the function and store the result.
4
Export the result variable
Export the variable loudGreeting so it can be used in other modules.
Deno
Hint
Add export { loudGreeting }; at the end to export the variable.
Practice
(1/5)
1. What is a key feature of Deno regarding TypeScript support?
easy
A. Deno does not support TypeScript at all.
B. Deno requires manual compilation of TypeScript before running.
C. Deno runs TypeScript files directly without extra setup.
D. Deno only supports JavaScript, not TypeScript.
Solution
Step 1: Understand Deno's TypeScript handling
Deno is designed to run TypeScript files directly without needing a separate compilation step.
Step 2: Compare options with this feature
Only Deno runs TypeScript files directly without extra setup. correctly states this direct support; others contradict this fact.
Final Answer:
Deno runs TypeScript files directly without extra setup. -> Option C
Quick Check:
Direct TypeScript execution = A [OK]
Hint: Remember: Deno runs TS files without compiling first [OK]
Common Mistakes:
Thinking Deno needs manual TypeScript compilation
Believing Deno only supports JavaScript
Confusing Deno with Node.js setup
2. Which of the following is the correct way to run a TypeScript file named app.ts using Deno?
easy
A. deno compile app.ts
B. tsc app.ts && deno run app.js
C. node app.ts
D. deno run app.ts
Solution
Step 1: Identify Deno command to run TS files
Deno uses deno run to execute TypeScript files directly.
Step 2: Evaluate other options
deno compile app.ts compiles but does not run; tsc app.ts && deno run app.js compiles manually then runs JS, which is unnecessary; node app.ts uses Node.js which can't run TS directly.
Final Answer:
deno run app.ts -> Option D
Quick Check:
Run TS file with 'deno run' = C [OK]
Hint: Use 'deno run' to execute TypeScript files directly [OK]
Common Mistakes:
Trying to compile TS manually before running
Using Node.js command for TS files
Confusing compile and run commands
3. Given this TypeScript code run with Deno:
function greet(name: string) {
return `Hello, ${name}!`;
}
console.log(greet(42));
What will happen when you run deno run on this file?
medium
A. It throws a type error before running
B. It prints 'Hello, 42!'
C. It prints 'Hello, undefined!'
D. It runs but logs 'Hello, 42!' with a warning
Solution
Step 1: Analyze TypeScript type checking
The function expects a string, but 42 is a number, causing a type error.
Step 2: Understand Deno's behavior
Deno checks types before running and will throw an error, stopping execution.
Final Answer:
It throws a type error before running -> Option A
Quick Check:
Type mismatch causes error = A [OK]
Hint: Type errors stop Deno before running code [OK]
When running with Deno, you get an error. What is the best fix?
medium
A. Remove type annotations from the function.
B. Change '5' to 5 (number) in the function call.
C. Run with Node.js instead of Deno.
D. Ignore the error and run anyway.
Solution
Step 1: Identify the type mismatch
The function expects numbers, but '5' is a string, causing a type error.
Step 2: Fix the argument type
Changing '5' (string) to 5 (number) matches the expected types and fixes the error.
Final Answer:
Change '5' to 5 (number) in the function call. -> Option B
Quick Check:
Correct argument types fix errors = B [OK]
Hint: Match argument types to function parameters [OK]
Common Mistakes:
Removing types loses safety
Trying to run with Node.js without compiling
Ignoring errors instead of fixing types
5. You want to write a Deno script that reads a JSON file and ensures the data matches a TypeScript interface before processing. Which approach best uses Deno's TypeScript support out of the box?
hard
A. Define the interface, read the file, parse JSON, and use a type assertion to check the data.
B. Write JavaScript code and manually check types at runtime with if statements.
C. Compile the TypeScript to JavaScript first, then run with Deno.
D. Use a third-party tool to convert JSON to TypeScript types before running.
Solution
Step 1: Use TypeScript interface for type safety
Defining an interface helps TypeScript check data structure during development.
Step 2: Read and parse JSON, then assert type
Parsing JSON and using a type assertion leverages Deno's built-in TypeScript support to catch errors early.
Final Answer:
Define the interface, read the file, parse JSON, and use a type assertion to check the data. -> Option A
Quick Check:
Use interfaces and assertions for type safety = D [OK]
Hint: Use interfaces and type assertions with Deno's TS support [OK]
Common Mistakes:
Ignoring TypeScript interfaces and relying on runtime checks
Compiling manually before running with Deno
Overcomplicating with external tools unnecessarily
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.