У меня есть компонент Vue, который использует модальный компонент vue-boostrap, с определением, которое выглядит примерно так:
<template>
<div>
<b-modal ref="NewProjectDialog" id="NewProjectDialog" centered>
</b-modal>
</div>
</template>
<script lang="ts">
import { Component, Vue, Prop } from 'vue-property-decorator'
import {BModal} from 'bootstrap-vue'
@Component()
export default class Projects extends Vue {
save_project() {
(this.$refs['NewProjectDialog'] as BModal).hide()
}
}
Приведенный выше код работает правильно, однако, похоже, что я произвел приведение $ref['NewProjectDialog']
, это ошибка, потому что кажется, что компилятор выбирает предыдущую строку как часть выражения, например, следующий код генерирует ошибку "Cannot invoke an expression whose type lacks a call signature."
:
save_project() {
console.log('any code line without a semicolon fails')
(this.$refs['NewProjectDialog'] as BModal).hide()
}
но следующий код компилируется нормально:
save_project() {
console.log('any code line without a semicolon fails');
(this.$refs['NewProjectDialog'] as BModal).hide()
}
Может кто-нибудь объяснить, почему мне нужен разделитель строк для кода для правильной работы?