我试图定义一个具有返回类型(对象)的函数类型,以强制实现它的函数返回返回类型中定义的确切对象属性。
但是,编译器对返回的对象并不严格,并且允许返回的对象类型中未定义的额外属性。
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)
相反,如果Obj在函数中指定了返回类型fn,则编译器会显示错误。
interface Obj {
foo: string;
}
const fn = (): Obj => {
return {
foo: 'bar',
blah: '', // compiler shows an error
};
};
Run Code Online (Sandbox Code Playgroud)
有人可以解释为什么 TS 以不同的方式处理这些情况吗?有没有办法在使用函数类型时保证返回类型的严格性?
我正在使用Bootstrap 3工具提示,使用了文档中的示例,但问题是它们在开始时自动显示,当页面加载时所有工具提示都可见!
我希望他们只在悬停时显示,我该怎么办?
tooltip twitter-bootstrap twitter-bootstrap-tooltip twitter-bootstrap-3
免责声明:对不起,这会有点长
所以我正在使用 Vue JS 和 Vuex 开发一个中等复杂的应用程序。
这是我的第一个 Vue SPA 项目,所以我在架构选择方面遇到了一些困难,特别是“谁应该了解商店?”的问题。
我将用一个虚拟示例来描述我的问题:
假设我们有一个Post组件,它有 3 个状态可以通过按钮切换:
title和text。title输入和text输入现在为了显示和更新帖子,该组件获取一个id道具并从商店内的帖子列表中选择帖子对象,并在必要时分派操作。它具有update在显示和更新状态之间切换的内部属性。
至于创建状态,一个 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)