実現したいこと
css-loaderの7.0以上で、CSS Moduleをかけた場合に、Named Exportがデフォルト設定となるのですが、それを型エラーなし(もちろんnoImplicitAny)で運用する方法はありますでしょうか?
(なお、「CSSの1ファイルごとに型定義を手で書く」という解決策は煩雑すぎるので除外します)
発生している問題・分からないこと
css-loaderのMigration guideにしたがって、import * as styles from ...のように書き換えたのですが、styles.fooと使ったところでTypeScriptコンパイラがProperty 'foo' does not exist on type 'typeof import("*.module.scss")'.のように返してきます。
import {foo} from ...に対しても、Module '"*.module.scss"' has no exported member 'foo'. Did you mean to use 'import foo from "*.module.scss"' instead?と返してきます。
該当のソースコード
typescript
1// CSS系の型定義2declare module '*.module.scss' {3 const value: { [x: string]: string };4 export default value;5}6
試したこと・調べたこと
上記の詳細・結果
先行するStackOverflowの質問を発見しましたが、解決策は得られていませんでした。
補足
ツール類のバージョン
json
1{2 "node": "20.11.1",3 "typescript": "5.4.5",4 "webpack": "5.91.0",5 "css-loader": "7.1.1"6}

0 コメント