首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >react-pose:如何定义react-pose中道具的类型?(props隐式具有任何类型)

react-pose:如何定义react-pose中道具的类型?(props隐式具有任何类型)
EN

Stack Overflow用户
提问于 2019-05-09 21:20:14
回答 1查看 138关注 0票数 0

我正在使用带有react-pose的TypeScript,需要定义道具的类型。这是我刚刚使用create-react-app版本3.0.1启动的应用程序。

我一直收到错误Parameter 'props' implicitly has an 'any' type.

我尝试过在div上定义类似于styled-components的类型

代码语言:javascript
复制
const FadeIn = posed.div<{ duration: number; hiddenOffset: number }>({
  visible: {
    opacity: 1,
    scale: 1,
    x: 0,
    y: 0,
    transition: { duration: props => props.duration }
  },
  hidden: {
    opacity: 0,
    scale: 0.8,
    x: props => props.hiddenOffset,
    y: 10
  }
});

我还尝试定义一个组件来代替posed.div

代码语言:javascript
复制
const FadeInContainer: React.FC<{
  duration: number;
  hiddenOffset: number;
}> = props => {
  return <div {...props} />;
};

并传递它:

代码语言:javascript
复制
const FadeIn = posed(FadeInContainer)({
  visible: {
    opacity: 1,
    scale: 1,
    x: 0,
    y: 0,
    transition: { duration: props => props.duration }
  },
  hidden: {
    opacity: 0,
    scale: 0.8,
    x: props => props.hiddenOffset,
    y: 10
  }
});

这里我漏掉了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-05-10 22:43:18

props定义一个接口并注释函数参数似乎是可行的。

代码语言:javascript
复制
interface Props {
  duration: number;
  hiddenOffset: number;
}

const FadeIn = posed.div({
  visible: {
    opacity: 1,
    scale: 1,
    x: 0,
    y: 0,
    transition: (props: Props) => ({ duration: props.duration })
  },
  hidden: {
    opacity: 0,
    scale: 0.8,
    x: (props: Props) => props.hiddenOffset,
    y: 10
  }
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56060372

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档