What is the syntax to import the default export from a module in TypeScript?
Use <code>import name from 'module'</code> where <code>name</code> is the local name you want to assign to the default export.
Click to reveal answer
beginner
How do you import named exports from a module?
Use <code>import { export1, export2 } from 'module'</code> to import specific named exports.
Click to reveal answer
intermediate
Explain how to import all exports from a module as a single object.
Use <code>import * as alias from 'module'</code>. This imports everything and groups it under the name <code>alias</code>.
Click to reveal answer
intermediate
What is the syntax to rename a named import during import?
Use <code>import { originalName as aliasName } from 'module'</code> to rename a named export locally.
Click to reveal answer
intermediate
How can you import a module for its side effects only?
Use <code>import 'module'</code> without any bindings. This runs the module code but does not import any values.
Click to reveal answer
Which syntax imports the default export from a module named 'utils'?
Aimport * as utils from 'utils'
Bimport { utils } from 'utils'
Cimport utils from 'utils'
Dimport 'utils'
✗ Incorrect
The default export is imported using import name from 'module' syntax.
How do you import only the named export 'calculate' from a module 'math'?
Aimport { calculate } from 'math'
Bimport 'math'
Cimport * as calculate from 'math'
Dimport calculate from 'math'
✗ Incorrect
Named exports are imported using curly braces: import { calculate } from 'math'.
What does import * as utils from 'utils' do?
AImports all exports grouped under the name 'utils'
BImports only the default export
CImports nothing, just runs the module
DImports only named exports without default
✗ Incorrect
This syntax imports all exports as properties of the object named 'utils'.
How do you rename a named import 'foo' to 'bar'?
Aimport { bar as foo } from 'module'
Bimport { foo as bar } from 'module'
Cimport foo from 'module' as bar
Dimport * as bar from 'module'
✗ Incorrect
Use { originalName as alias } to rename imports.
Which import syntax runs a module only for its side effects?
Aimport * as mod from 'module'
Bimport mod from 'module'
Cimport { something } from 'module'
Dimport 'module'
✗ Incorrect
Importing a module without bindings runs it for side effects only.
Describe the different ways to import modules in TypeScript and when to use each.
Think about how you get one export, many exports, or just run the module.
You got /5 concepts.
Explain how to rename a named export during import and why it might be useful.
Use the 'as' keyword in import statements.
You got /3 concepts.
Practice
(1/5)
1. Which import syntax correctly imports the default export from a module named utils?
easy
A. import utils from './utils';
B. import { utils } from './utils';
C. import * as utils from './utils';
D. import utils = require('./utils');
Solution
Step 1: Understand default export import syntax
The default export is imported without curly braces using import name from 'module'.
Step 2: Analyze each option
import utils from './utils'; uses the correct syntax for default import. import { utils } from './utils'; uses curly braces which is for named exports. import * as utils from './utils'; imports everything as an object, not default. import utils = require('./utils'); is CommonJS style, not ES module syntax.
Final Answer:
import utils from './utils'; -> Option A
Quick Check:
Default import = import name from 'module' [OK]
Hint: Default imports have no braces, named imports do [OK]
Common Mistakes:
Using curly braces for default imports
Confusing * as import with default import
Mixing CommonJS require syntax with ES modules
2. Which of the following is the correct syntax to import only the named export calculate from a module mathUtils?
easy
A. import calculate from './mathUtils';
B. import { calculate } from './mathUtils';
C. import * as calculate from './mathUtils';
D. import calculate = require('./mathUtils');
Solution
Step 1: Identify named export import syntax
Named exports are imported using curly braces: import { name } from 'module'.
Step 2: Check each option
import { calculate } from './mathUtils'; correctly imports the named export calculate. import calculate from './mathUtils'; is for default imports. import * as calculate from './mathUtils'; imports all exports as an object, not a single named export. import calculate = require('./mathUtils'); uses CommonJS syntax, not ES modules.
Final Answer:
import { calculate } from './mathUtils'; -> Option B
Quick Check:
Named import = import { name } from 'module' [OK]
Hint: Use curly braces for named imports only [OK]
Common Mistakes:
Omitting curly braces for named imports
Using * as import when only one named export is needed
Confusing default and named import syntax
3. Given the following code, what will be the output?
import * as helpers from './helpers';
console.log(typeof helpers);
console.log(typeof helpers.formatDate);
Assume helpers exports a function named formatDate.
medium
A. "object" and "object"
B. "function" and "undefined"
C. "object" and "function"
D. "undefined" and "function"
Solution
Step 1: Understand import * as syntax
Using import * as helpers imports all exports as an object named helpers.
Step 2: Determine types of helpers and helpers.formatDate
helpers is an object, so typeof helpers is "object". formatDate is a function exported inside helpers, so typeof helpers.formatDate is "function".
Final Answer:
"object" and "function" -> Option C
Quick Check:
import * as = object, function inside = function [OK]
Hint: import * as creates an object with exported members [OK]
Common Mistakes:
Thinking import * as imports a function directly
Confusing typeof results for functions and objects
Assuming default export with import * as syntax
4. Identify the error in this import statement:
import { default as myFunc } from './module';
medium
A. You cannot rename the default import using curly braces.
B. The syntax is correct; no error.
C. You must use import myFunc from './module'; for default imports.
D. Default imports must be imported with * as syntax.
Solution
Step 1: Understand default import syntax
Default imports are imported without curly braces and can be renamed directly: import myFunc from 'module'.
Step 2: Analyze the given syntax
The syntax import { default as myFunc } tries to rename the default export inside curly braces, which is invalid in ES module syntax.
Final Answer:
You cannot rename the default import using curly braces. -> Option A
Quick Check:
Default import no braces, no rename inside braces [OK]
Hint: Default imports never use curly braces [OK]
Common Mistakes:
Trying to rename default import inside curly braces
Confusing named export renaming with default import
Assuming default import can be destructured
5. You want to import a named export parseData from dataUtils but avoid naming conflicts by renaming it to parse. Which is the correct import statement?
hard
A. import parse from './dataUtils';
B. import { parse as parseData } from './dataUtils';
C. import * as parse from './dataUtils';
D. import { parseData as parse } from './dataUtils';
Solution
Step 1: Understand renaming named imports
You can rename named imports using import { originalName as newName }.
Step 2: Check each option
import { parseData as parse } from './dataUtils'; correctly renames parseData to parse. import parse from './dataUtils'; imports default export, not named. import * as parse from './dataUtils'; imports all exports as an object named parse. import { parse as parseData } from './dataUtils'; tries to rename parse to parseData, which is reversed.
Final Answer:
import { parseData as parse } from './dataUtils'; -> Option D
Quick Check:
Rename named import with 'as' inside braces [OK]
Hint: Use 'as' inside braces to rename named imports [OK]
Common Mistakes:
Using default import syntax for named exports
Confusing rename direction in 'as' syntax
Using * as when only one function is needed
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.