Common Errors
In this section we explain a number of common error codes that users experience in the real world.
TS2304
Samples:
Cannot find name ga
You are probably using a third party library (e.g. google analytics) and don’t have it declare
d. TypeScript tries to save you from spelling mistakes and using variables without declaring them so you need to be explicit on anything that is available at runtime because of you including some external library (more on how to fix it).
TS2307
Samples:
Cannot find module 'underscore'
You are probably using a third party library (e.g. underscore) as a module (more on modules) and don’t have the ambient declaration file for it (more on ambient declarations).
TS1148
Sample:
Cannot compile modules unless the ‘—module’ flag is provided
Checkout the section on modules.
Catch clause variable cannot have a type annotation
Sample:
try { something(); }
catch (e: Error) { // Catch clause variable cannot have a type annotation
}
TypeScript is protecting you from JavaScript code in the wild being wrong. Use a type guard instead:
try { something(); }
catch (e) {
if (e instanceof Error){
// Here you go.
}
}
Interface ElementClass
cannot simultaneously extend types Component
and Component
This happens when you have two react.d.ts
(@types/react/index.d.ts
) in the compilation context.
Fix:
- Delete
node_modules
and anypackage-lock
(or yarn lock) andnpm install
again. - If it doesn’t work, find the invalid module (all modules used by your project should have
react.d.ts
as apeerDependency
and not a harddependency
) and report it on their project.
For search indexing
You can ignore reading this. This section is for search engine indexing.
Other modules that people tend to use and get errors:
- Cannot find name $
- Cannot find module jquery