[英]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.