typescript - 类型“string”不可分配给类型“0x${string}”

soo*_*oon 2 typescript nft wagmi

我正在使用 React Typescript 将 wagmi 用于我的 NFT 项目。

在开发NFT检查模块时我遇到了这个错误:

类型“string”无法分配给类型“ 0x${string}

我如何将我的字符串投射到0x${string}

下面是我的代码:

import { useEffect, useState } from "react";
import { useContractRead, erc721ABI } from "wagmi";

const useNFTChecker = ({
    contractAddress,
    walletAddress,
}: {
    contractAddress: string;///<-- this needs conversion
    walletAddress: string;
}) => {
    const { data, error } = useContractRead({
        address: contractAddress, ///<-- `0x${string}`
        contractInterface: erc721ABI,
        functionName: "balanceOf",
        args: [walletAddress],
    });

    const [hasNFT, setHasNFT] = useState(false);

    ...

    return { hasNFT, error };
};

export default useNFTChecker;
Run Code Online (Sandbox Code Playgroud)

小智 5

我遇到了类似的问题,需要将字符串类型转换为地址字符串。我通过将字符串类型断言为0x${string}using解决了这个问题as

基本上尝试使用以下内容,看看它是否修复了 TypeScript 错误。

const { data, error } = useContractRead({
        address: contractAddress as `0x${string}`, 
        contractInterface: erc721ABI,
        functionName: "balanceOf",
        args: [walletAddress],
});
Run Code Online (Sandbox Code Playgroud)