小编yaz*_*eld的帖子

Typescript 函数类型不强制执行与返回类型相同的严格性

我试图定义一个具有返回类型(对象)的函数类型,以强制实现它的函数返回返回类型中定义的确切对象属性。

但是,编译器对返回的对象并不严格,并且允许返回的对象类型中未定义的额外属性。

interface Obj {
  foo: string;
}

type Func = () => Obj;

const fn: Func = () => {
  return {
    foo: 'bar',
    blah: '', // compiler does not show an error
  };
};
Run Code Online (Sandbox Code Playgroud)

TS 游乐场中的示例

相反,如果Obj在函数中指定了返回类型fn,则编译器会显示错误。

interface Obj {
  foo: string;
}

const fn = (): Obj => {
  return {
    foo: 'bar',
    blah: '', // compiler shows an error
  };
};
Run Code Online (Sandbox Code Playgroud)

TS 游乐场中的示例

有人可以解释为什么 TS 以不同的方式处理这些情况吗?有没有办法在使用函数类型时保证返回类型的严格性?

typescript

7
推荐指数
1
解决办法
821
查看次数

在页面加载时可见的Bootstrap 3工具提示

我正在使用Bootstrap 3工具提示,使用了文档中的示例,但问题是它们在开始时自动显示,当页面加载时所有工具提示都可见!

我希望他们只在悬停时显示,我该怎么办?

tooltip twitter-bootstrap twitter-bootstrap-tooltip twitter-bootstrap-3

5
推荐指数
1
解决办法
6657
查看次数

子组件是否应该可以访问商店?

免责声明:对不起,这会有点长

所以我正在使用 Vue JS 和 Vuex 开发一个中等复杂的应用程序。

这是我的第一个 Vue SPA 项目,所以我在架构选择方面遇到了一些困难,特别是“谁应该了解商店?”的问题。

我将用一个虚拟示例来描述我的问题:

假设我们有一个Post组件,它有 3 个状态可以通过按钮切换:

  • 阅读:组件显示titletext
  • 更新:组件显示title输入和text输入
  • 创建:相同的组件用于创建一个新帖子,所以它就像更新,但具有空值。

第一种方法:组件处理商店数据:

  1. 现在为了显示和更新帖子,该组件获取一个id道具并从商店内的帖子列表中选择帖子对象,并在必要时分派操作。它具有update在显示和更新状态之间切换的内部属性。

  2. 至于创建状态,一个 nullid被传递给组件,所以它不会从存储中获取任何东西并显示输入,它会调度插入操作。

示例代码

const KnowledgebalePost = {
    name: 'Post',
    props: ['id'],
    data() {
        return {
            post: {
                title: '',
                text: '',
            },
            state: 'show'
        }
    },
    methods: {
        updateClicked() {
            this.state = 'update';
        },
        saveClicked() {
            this.state = 'show';
            const postObject = …
Run Code Online (Sandbox Code Playgroud)

javascript vue.js vue-component vuex vuejs2

5
推荐指数
1
解决办法
605
查看次数