输入'{ children: string; }' 与 'IntrinsicAttributes & IModalProps' 类型没有共同的属性

Type '{ children: string; }' has no properties in common with type 'IntrinsicAttributes & IModalProps'

此代码:

import { Modal } from "office-ui-fabric-react/lib/Modal";
import * as React from "react";

export interface ISignInFormProps {
  showModal: boolean;
}

const SignInForm = () => {
  return <Modal>Hello</Modal>;
};

export default SignInForm;

产生以下错误:

(9,11): Type '{ children: string; }' has no properties in common with type 'IntrinsicAttributes & IModalProps'.

此 CodePen 未显示任何错误 - https://codepen.io/camden-kid/pen/aMmzKq?editors=0010

问题的原因是什么,如何解决?

你不能设置 any children,不是 JSX 元素(例如 <div>Hello</div>),也不是字符串(如你的代码所示)。

在 TypeScript 3.3 中使用 Fabric 的已知问题:https://github.com/OfficeDev/office-ui-fabric-react/issues/7874

修复

两种方式:

fix.d.ts:

declare module 'office-ui-fabric-react/lib/Modal' {
 const Modal: React.StatelessComponent<IModalProps>;
}

我们已解决此问题。 TypeScript 3.x 暴露了我们样式化实用程序的 return 值的输入错误,它没有使用 React 的 StatelessComponent 类型,因此没有 children 属性。 PR 是 here,应该会在我们的下一个夜间版本中提供。