typescript - 用于推断递归类型的打字稿提示?
问题描述
我正在尝试编写一个具有递归函数的库:
const generateTreeNode = () => {
return {
value: 1,
// ...other properties...
next: generateTreeNode
};
}
如果没有任何附加信息,打字稿将无法推断出递归:
declare const generateTreeNode: () => {
value: number;
next: any;
};
我知道如果我指定它,我可以让编译器正确识别类型:
type TGenerateTreeNode = () => {
value: number,
next: TGenerateTreeNode
};
const generateTreeNode: TGenerateTreeNode = () => {
return {
value: 1,
// ...other properties...
next: generateTreeNode
};
}
我想知道的是,是否有任何提示给编译器类型定义递归的地方,而不必指定其他(非递归)属性(例如value
)。理想情况下,类似:
type TGenerateTreeNode<TOther extends {[key: string]: any}> = () => {
next: TGenerateTreeNode<TOther>
} & TOther;
// This errors without a defintion for the generic on TGenerateTreeNode
const generateTreeNode: TGenerateTreeNode = () => {
return {
value: 1,
// ...other properties...
next: generateTreeNode
};
}
解决方案
推荐阅读
- python - Windows API 调用不起作用:SaveBitmapFile
- javascript - 重定向到 div
- python - 在 Seaborn 线图中通过“色调”设置线条颜色
- azure-active-directory - Azure Web App Authentication using Azure AD – 如何获取用户组
- java - 如何获取和设置剪贴板数据?
- python - 收集集合中字段的所有值
- wordpress - 在 WooCommerce 中创建新用户后,用户更改不起作用
- java - 如何更改 JavaFx ComboBox 文本颜色
- java - StringJoiner - 括号中的每一项
- python - 使用字典一次设置 pandas 行的值