我试图在我的组件中使用与此示例类似的可滑动按钮,我能够使其与 React 一起使用,但 TypeScript 给我带来了问题。请看下面的编译错误:
import * as React from 'react'
import { withGesture } from 'react-with-gesture'
import { Spring, animated } from 'react-spring'
interface Props {
name: string
sex: string
age: string
xDelta?: number
down?: boolean
}
@withGesture
export class Person extends React.Component<Props, {}> {
render() {
const { xDelta, down, children } = this.props
let x = 0
return (
<Spring native to={{ x: down ? xDelta : 0 }} immediate={name => down && name === 'x'}>
{({ x }) => (
<div className="item" style={{ backgroundColor: xDelta < 0 ? '#FF1C68' : '#14D790' }}>
<animated.div className="fg" style={{ transform: x.interpolate(x => `translate3d(${x}px,0,0)`) }}>
{down && Math.abs(xDelta) > 50 ? (xDelta < 0 ? 'Cancel' : 'Accept') : children}
</animated.div>
</div>
)}
</Spring>
)
}
}
export default Person
[at-loader] ./src/components/Person.tsx:19:62 TS2322 中的错误:类型 '(name: string) => boolean | undefined' 不可分配给类型 'boolean | 字符串[] | ((键:字符串)=> 布尔值)| (false & ((name: string) => boolean | undefined)) | (true & ((name: string) => boolean | undefined)) | (string[] & ((name: string) => boolean | undefined)) | (((key: string) => boolean) & ((name: string) => boolean | undefined)) | 不明确的'。输入 '(name: string) => boolean | undefined' 不能分配给类型 '(key: string) => boolean'。输入'布尔| undefined' 不能分配给类型 'boolean'。类型“未定义”不可分配给类型“布尔”。
[at-loader] ./src/components/Person.tsx:21:59 TS2532 中的错误:对象可能是“未定义”。
[at-loader] 中的错误 ./src/components/Person.tsx:23:33 TS2345: 类型参数 'number | undefined' 不能分配给“number”类型的参数。类型“未定义”不可分配给类型“数字”。
[at-loader] ./src/components/Person.tsx:23:49 TS2532 中的错误:对象可能是“未定义”。ℹ「wdm」:编译失败。
这与我的 tsconfig 设置有关吗?过去 10 个小时,我一直在尝试使用 Typescript 和我自己的配置文件通过手势示例运行 react-spring。我将不胜感激。
谢谢。