У меня есть SFC (одиночный компонент vue), который использует TypeScript, функцию рендеринга и модуль CSS
<script lang="ts">
import Vue from 'vue';
export default Vue.extend({
props: {
mode: {
type: String,
default: 'td', // or th
},
},
render(h) {
return h('tr', [
'preview',
'name',
'price',
'count',
'delete',
].map(col => h(this.mode, { class: this.$style[col] },
this.$slots[col])));
},
});
</script>
<style lang="stylus" module>
.preview
display none
.delete
text-align center
@media (min-width 768px)
.preview
display table-row
</style>
И я получаю ошибку от TypeScript:
ERROR in /home/oks/apps/shop/src/components/CartRow.vue
18:45 Property '$style' does not exist on type 'CombinedVueInstance<Vue, {}, {}, {}, Readonly<{ mode: string; }>>
'.
16 | 'count',
17 | 'delete',
> 18 | ].map(col => h(this.mode, { class: this.$style[col] }, this.$slots[col])));
| ^
19 | },
20 | });
В JSэтот код работает, но TS не знает о модулях CSS и свойстве this.$style
.Как это исправить?