扫码一下
查看教程更方便
Next.js 提供了集成的 TypeScript 开发体验,并且开箱即用,类似一个 IDE。以下几个步骤才能在项目中启用 TypeScript。
在根目录中创建tsconfig.json。 起初我们不往文件中写内容,使其保持为空。 现在开启服务器。
Next.js将检测Tsconfig.json并在控制台上显示Follwing消息。
$ npm run dev
> nextjs@1.0.0 dev /workspace/node/nextjs
> next dev
ready - started server on 0.0.0.0:3000, url: http://localhost:3000
It looks like you're trying to use TypeScript but do not have the required package(s) installed.
Please install typescript, @types/react, and @types/node by running:
npm install --save-dev typescript @types/react @types/node
If you are not trying to use TypeScript, please remove the tsconfig.json file from your package root (and any TypeScript files in your pages directory).
运行npm install
命令来安装 TypeScript 和相关库。
$ npm install --save-dev typescript @types/react @types/node
...
+ @types/react@17.0.40
+ @types/node@17.0.21
+ typescript@4.6.2
added 6 packages from 69 contributors and audited 32 packages in 14.499s
运行以下命令启动服务器
$ npm run dev
> nextjs@1.0.0 dev /workspace/node/nextjs
> next dev
ready - started server on 0.0.0.0:3000, url: http://localhost:3000
We detected TypeScript in your project and created a tsconfig.json file for you.
event - compiled client and server successfully in 1086 ms (124 modules)
NextJS服务已修改 tsconfig.json。
tsconfig.json
{ "compilerOptions": { "target": "es5", "lib": [ "dom", "dom.iterable", "esnext" ], "allowJs": true, "skipLibCheck": true, "strict": false, "forceConsistentCasingInFileNames": true, "noEmit": true, "incremental": true, "esModuleInterop": true, "module": "esnext", "moduleResolution": "node", "resolveJsonModule": true, "isolatedModules": true, "jsx": "preserve" }, "include": [ "next-env.d.ts", "**/*.ts", "**/*.tsx" ], "exclude": [ "node_modules" ] }
在 pages/api 目录中创建 hello.ts,它将充当我们的 rest 服务。
hello.ts
import { NextApiRequest, NextApiResponse } from 'next' export default (_: NextApiRequest, res: NextApiResponse) => { res.status(200).json({ text: 'Welcome to jiyik.com' }) }
运行以下命令启动服务器
$ npm run dev
> nextjs@1.0.0 dev /workspace/node/nextjs
> next
ready - started server on http://localhost:3000
event - compiled successfully
event - build page: /
wait - compiling...
event - compiled successfully
event - build page: /next/dist/pages/_error
wait - compiling...
event - compiled successfully
在浏览器中打开 localhost:3000/api/hello ,我们将看到以下输出。