打字稿类型冲突

时间:2018-04-20 08:57:22

标签: reactjs typescript

我得到一个奇怪的错误,我无法找到原因。

我有2个npm包使用typescript:

  • 伊俄涅/通用
  • react-auth(需要通用)

在构建react-auth(tsc -p tsconfig.json)时,我得到了:

[I] ➜ yarn build
yarn run v1.6.0
$ tsc -p tsconfig.json
node_modules/@ione/common/dist/components/router/IoneLink.d.ts:5:144 - error TS2344: Type '"media" | "hidden" | "dir" | "slot" | "style" | "title" | "color" | "children" | "replace" | "dow...' does not satisfy the constraint '"media" | "hidden" | "dir" | "slot" | "style" | "title" | "color" | "children" | "location" | "re...'.
  Type '"css"' is not assignable to type '"media" | "hidden" | "dir" | "slot" | "style" | "title" | "color" | "children" | "location" | "re...'.

然而,react-auth未使用IoneLink包内的ione/common组件。

我检查了两个软件包的依赖版本及其@types要求,它们都是相同的。

IoneLink组件的道具界面是:

import { Link, LinkProps } from 'react-router-dom';
import { RouteComponentProps, withRouter } from 'react-router';
declare type Props < P > =
  LinkProps &
  RouteComponentProps<P> &
  React.AnchorHTMLAttributes<HTMLAnchorElement>;

确实很大,但不包含css属性。

谢谢!

1 个答案:

答案 0 :(得分:0)

我设法找到情感npm包的问题。

emotion文件的types密钥中添加tsconfig后,它正确构建且没有错误。