我会输入以获得自定义的TypeScript接口:
export type CreateActions<T> = T;所以我可以做这样的事:
const actionCreators = {
add: null,
remove: null
}
const { creators }: { creators: CreateActions<ActionCreators> } = createActions('Jedi', actionCreators);
creators.add({ name: 'Yoda' });所以我想让方法“添加”被TypeScript理解。
谢谢你的建议!
这是 } = createActions('Jedi', actionList); creators.add({ name: 'Yoda' }); ">游乐场
编辑:
很难解释,对不起。
我想要的是:我有一个有钥匙的物体。它的值是"null“或"object”。
我想要一个方法来获取这些键,并为这些键生成方法。
所以如果我有
const myObject = {
myKey: null,
otherKey: null,
}我希望我的方法输出:
{
myKey: () => ...,
otherKey: () => ...
}因此,我想根据我的第一个对象添加TypeScript验证。这个对象(在我的例子中是myObject)是未知的,它的键可能会有所不同。
发布于 2018-05-28 12:25:47
如果希望在interface属性中包含函数,请声明它们的类型,即Function。另外,如果您在编译时不知道它们将放在什么位置,那么请注意,TypeScript也只能提供尽可能多的信息。
在您的示例中,您在创建对象之后定义了这些函数,因此需要将它们声明为可空,这意味着添加一个| null,意味着它们可以是null (因为它们处于初始状态)。
这使得界面的最终代码如下所示:
interface ActionCreators {
[key: string]: Function | null
}下面是您的案例的操场链接,在尝试分配函数以外的其他内容时,一个示例是一个错误:操场链接
https://stackoverflow.com/questions/50565974
复制相似问题