typescript - როდესაც Vue3-ში .module.scss იყენებთ, წარმოიშვა TS შეცდომა
მე მაქვს ცვლადი foo.module.scss-ში და მინდა გამოვიყენო ის .vue ფაილებშ. როცა ვიმპორტირებ ცვლადს foo.vue-ში, ვიღებ ts შეცდომას
// foo.vue
<script lang="ts" setup>
// Module '"*.module.scss"' has no exported member 'titleColor'. Did you mean to use 'import titleColor from "*.module.scss"' instead?ts(2614)
import { titleColor } from '@/styles/var.module.scss'
// Even if I output this variable, ts will still report an error
console.log(titleColor)
</script>
// foo.module.scss
$aside-menu-bg: pink;
:export {
titleColor: $aside-menu-bg;
}
აქ არის ჩემი პროექტის დემო. ეს შეცდომა შეატყობინება, როდესაც კოდი დაიწყება ადგილობრივ vscode-ში ან კოპირებული იქნება იქ.
https://stackblitz.com/edit/vitejs-vite-yidtzb?file=src/App.vue
კარგი, როდესაც ასე ვწერ, შემიძლია სწორად მივიღო ის, რაც მინდა და ავიცილო ანგარიშგების შეცდომები, მაგრამ მივიღებ ბევრ ისეთ რამეს, რაც არ მინდა
// foo.vue
<script lang="ts" setup>
import test from '@/styles/var.module.scss'
// output: a huge object
console.log(test)
</script>
უპასუხე #1
Vite-ის დოკუმენტაციის სექცია CSS მოდულებზე აკეთებს ახსნას, როგორ გააქტიუროთ სახელწოდება ემპორტები.
თქვენ ასევე შეგიძლიათ გამოიყენოთ ობიექტის დესტრუქტურირება:
import scss from '@/styles/var.module.scss'
let { titleColor } from scss
