nextjs中typescript版本的error.tsx文件内容如何写
时间: 2024-02-06 13:04:30 浏览: 21
下面是一个简单的例子,展示了如何在 Next.js 中编写 TypeScript 版本的 Error 页面组件:
```tsx
import { NextPageContext } from 'next';
import { ErrorProps } from 'next/error';
interface Props extends ErrorProps {
statusCode?: number;
}
const ErrorPage = ({ statusCode }: Props) => {
return (
<div>
{statusCode ? `An error ${statusCode} occurred on server` : 'An error occurred on client'}
</div>
);
};
ErrorPage.getInitialProps = ({ res, err }: NextPageContext): Props => {
const statusCode = res ? res.statusCode : err ? err.statusCode : 404;
return {
statusCode,
};
};
export default ErrorPage;
```
在这个例子中,我们通过 `import { ErrorProps } from 'next/error'` 引入了 Next.js 默认的 Error 页面所使用的类型。我们还定义了一个 `Props` 接口,它继承了 `ErrorProps` 并添加了一个可选的 `statusCode` 属性。
在组件中,我们根据传入的 `statusCode` 展示不同的错误信息。在 `getInitialProps` 静态方法中,我们从 `NextPageContext` 中获取 `res` 和 `err` 对象,从而得到当前页面的状态码。最后,我们将状态码作为 `Props` 中的一个属性返回。