VueJS Строковая интерполяция может получить доступ к закрытому атрибуту объекта TS - PullRequest
2 голосов
/ 12 апреля 2020

Привет, я недавно начал изучать vuejs с использованием машинописного текста. Я создал класс модели с использованием машинописного текста, и в нем есть закрытые атрибуты, к которым якобы можно получить доступ только через геттеры и поместить их в хранилище vuex

Но в строковой интерполяции (усах) каким-то образом я могу получить приватные атрибуты без getter

Пожалуйста, посмотрите на мой код ниже, Спасибо!

User.ts

import { Stock } from "./Stock";

export class User {
  private _funds: number;
  private _portofolio: Array<Stock>;

  constructor() {
    this._funds = 5000;
    this._portofolio = [];
  }
  public updateFunds(by: number): void {
    this._funds += by;
  }
  get portofolio(): Array<Stock> {
    return this._portofolio;
  }
}

store / index.ts (vuex load)

import Vue from "vue";
import Vuex from "vuex";
import { User } from "@/models/User";

Vue.use(Vuex);

export default new Vuex.Store({
  state: {
    user: new User()
  },
  getters: {
    currentUser: state => {
      return state.user;
    }
  },
  mutations: {},
  actions: {},
  modules: {}
});

Приложение. vue (Master vue file)


<template>
  <div id="app">
        <p>Funds: {{ user._funds }}</p>
  </div>
</template>

<script lang="ts">
import Vue from "vue";

export default Vue.extend({
  data: function() {
    return {
      user: this.$store.getters.currentUser
    };
  },
  created: function() {
    console.log(this.user);
  }
});
</script>

1 Ответ

4 голосов
/ 12 апреля 2020

Закрытые члены TypeScript могут быть свободно доступны во время выполнения. То, что они подчеркнуты, позволяет отличить их guish от публикуемых c членов. Если к ним нельзя получить доступ, не получайте к ним доступ. Это может быть запрещено для команды с руководством по стилю.

Видимость TypeScript проверяется во время компиляции. Vue loader не обеспечивает поддержку TypeScript для шаблонов . Есть vue -type-check сторонняя утилита, которая предоставляет проверки типа TS для шаблонов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...