TypeScript does not know that there are files other than .ts
or .tsx
so it will throw an error if an import has an unknown file suffix.
If you have a webpack config that allows you to import other types of files, you have to tell the TypeScript compiler that these files exist. To do so add a declaration file in which you declare modules with fitting names.
The content of the module to declare depends on the webpack loader used for the file type. In a webpack configuration that pipes *.scss
files through sass-loader → css-loader → style-loader, there will be no content in the imported module, and the correct module declaration would look like this:
// declaration.d.ts
declare module '*.scss';
If the loaders are configured for css-modules just extend the declaration like this:
// declaration.d.ts
declare module '*.scss' {
const content: Record<string, string>;
export default content;
}