我有这段代码
let anchorRenderer: string => React.Component; // line 658
if (link) {
if (userAnchorRenderer) {
anchorRenderer = userAnchorRenderer; // line 661
} else {
anchorRenderer = (link: string) => <a className={styles.link} href={link}/> // line 663
}
}
...
// Usage of the function
return <div>
{anchorRenderer && anchorRenderer(link)})
</div>
但是我不能正确地得到类型声明。
在这个版本中,我得到了以下错误:
Error:(663, 11) TS2322: Type 'P["anchorRenderer"]' is not assignable to type 'string'.
Type '((link: string) => Component<{}, {}, any>) | undefined' is not assignable to type 'string'.
Type 'undefined' is not assignable to type 'string'.
Error:(663, 11) TS2322: Type '(link: string) => Element' is not assignable to type 'string'.
如果我把变量声明改为
let anchorRenderer: string => React.Component | undefined;
Error:(658, 35) TS2362: The left-hand side of an arithmetic operation must be of type 'any', 'number' or an enum type.