首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >自定义接口TypeScript

自定义接口TypeScript
EN

Stack Overflow用户
提问于 2018-05-28 12:01:11
回答 1查看 71关注 0票数 0

我会输入以获得自定义的TypeScript接口:

代码语言:javascript
复制
export type CreateActions<T> = T;

所以我可以做这样的事:

代码语言:javascript
复制
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”。

我想要一个方法来获取这些键,并为这些键生成方法。

所以如果我有

代码语言:javascript
复制
const myObject = {
  myKey: null,
  otherKey: null,
}

我希望我的方法输出:

代码语言:javascript
复制
{
  myKey: () => ...,
  otherKey: () => ...
}

因此,我想根据我的第一个对象添加TypeScript验证。这个对象(在我的例子中是myObject)是未知的,它的键可能会有所不同。

EN

回答 1

Stack Overflow用户

发布于 2018-05-28 12:25:47

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

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

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

代码语言:javascript
复制
interface ActionCreators {
    [key: string]: Function | null
}

下面是您的案例的操场链接,在尝试分配函数以外的其他内容时,一个示例是一个错误:操场链接

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50565974

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档