TypeScript,Library:React-Time-Ago 认为它需要一个数字,我给它一个字符串。我不知道如何让它接受一个数字?

TypeScript, Library:React-Time-Ago thinks it requires a number, I'm giving it a string. I cant figure out how to make it accept a number?

       import ReactTimeAgo from "react-time-ago"

        <ReactTimeAgo 
        
          date = {tweet._createdAt}
          />

_createdAt 输出时间为 2022-06-02T01:16:40Z

我正在使用 React-time-ago 将其更改为 21 分钟前。它实际上工作正常。然而,TypeScript 抱怨说日期参数需要作为数字输入。所以我进入 index.d.ts 并将类型从数字更改为任意。

interface Props extends React.HTMLAttributes<HTMLElement> {
    date: Date | any;
    future?: boolean;
    timeStyle?: string | Style;
    round?: string;
    minTimeLeft?: number;
    tooltip?: boolean;
    component?: React.ReactType;
    wrapperComponent?: React.ReactType;
    wrapperProps?: object;
    locale?: string;
    locales?: string[];
    formatVerboseDate?: (date: Date) => string;
    verboseDateFormat?: object;

这阻止了 vscode 的错误,但它仍然显示在浏览器上,并且由于该错误,我的部署失败了。如何让打字稿停止抱怨获取字符串?

这是错误 https://imgur.com/YjSt816

首先,您不应该尝试手动更改库文件。

此包中的 date 属性 接受 Datenumber 的联合类型。所以最好的办法是在输入 date 属性 字段之前将日期字符串转换为 Date 对象。您可以使用类似的方法;

const creationDate: Date = new Date('2022-06-02T01:16:40Z')

将该日期字符串解析为日期对象,然后将其作为道具提供。

通过编辑您的直接示例;

import ReactTimeAgo from "react-time-ago"

<ReactTimeAgo 
  date = {new Date(tweet._createdAt)}
/>