@MarkJSexton

Почему не типизируются статически?

Добрый день!

Столкнулся с проблемой следующего плана:
- создаю single component
- инициализирую интерфейс
- интереса ради в входном массиве меняю тип данных, ожидаю увидеть ошибку, но ничего не происходит, как будто ничего и не было

P.S. Приложение устанавливал create-nuxt-app typescript, конфиги не трогал, вроде писал все по доке)

Данные подаются на компонент, он все это дело рендерит

<input-fc
  v-for="input in inputData"
  :input="input"
  :key="input.id"
/>


<template>
  <div class="input">
    <input
      class="input__field"
      :type="input.type"
      :placeholder="input.placeholder"
    >
    <svg
      v-if="input.icon"
      class="icon"
    >
      <use xlink:href="~/static/icons/sprite.svg#search"></use>
    </svg>
  </div>
</template>


import Vue, { PropOptions } from 'vue'

interface InputData {
  id: number
  type: string
  placeholder: string
  icon?: string
}

export default Vue.extend({
  name: 'Input',
  props: {
    input: {
      type: Object,
      required: true
    } as PropOptions<InputData>
  },
})


Входной массив
let inputData = [
  {
    id: 0,
    type: 'text',
    placeholder: 'Поиск в новостях',
    icon: 1
  }
];


В примере выше, я ожидаю увидеть не соответствие типов у ключа icon, ведь ожидаю я строку, а получаю число, но ошибки в консоли я по итогу не наблюдаю.

Так в чем же проблема?
  • Вопрос задан
  • 44 просмотра
Решения вопроса 1
yarkov
@yarkov
Помог ответ? Отметь решением.
Я не понял. Вы в рантайме хотите, чтобы ТС ругался в консоль браузера? О_о
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы