繁体   English   中英

自定义界面TypeScript

[英]Custom interface TypeScript

我将键入以获取自定义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理解方法“ add”。

谢谢你的建议 !

这是游乐场

编辑

很难解释,对不起。

我想要的是:我有一个带有一些键的对象。 它的值是“空”或“对象”。

我想要一个采用这些键并为其生成方法的方法。

所以如果我有

const myObject = {
  myKey: null,
  otherKey: null,
}

我想要我的方法输出:

{
  myKey: () => ...,
  otherKey: () => ...
}

因此,我想基于第一个对象添加TypeScript验证。 该对象(在我的情况下为myObject)是未知的,其键可能会有所不同。

如果要在interface属性中包含函数,请声明其类型为Function 另外,如果您在编译时不知道它们将放置在什么键上,那么请注意TypeScript也将只能提供您所提供的尽可能多的信息。

我看到在您的示例中,您创建对象定义了这些函数,因此需要将它们声明为可为空,这意味着添加| null | null表示它们可以为null (因为它们处于初始状态)。

这使得界面的最终代码如下所示:

interface ActionCreators {
    [key: string]: Function | null
}

这是您的案例的游乐场链接,例如,当尝试分配功能以外的内容时,最后出现错误: 游乐场链接

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM