TypeScript
Next.js, React uygulamanızı oluşturmak için TypeScript öncelikli bir geliştirme deneyimi sunar.
Gerekli paketleri otomatik olarak yüklemek ve uygun ayarları yapılandırmak için yerleşik TypeScript desteği ile birlikte gelir.
New Projects
create-next-app artık varsayılan olarak TypeScript ile birlikte geliyor.
npx create-next-app@latestExisting Projects
        Bir dosyayı .ts / .tsx olarak yeniden adlandırarak projenize TypeScript ekleyin.
        Gerekli bağımlılıkları otomatik olarak yüklemek için next dev ve
        next build adreslerini çalıştırın ve önerilen yapılandırma seçeneklerini içeren bir
        tsconfig.json dosyası ekleyin.
      
        Zaten bir jsconfig.json dosyanız varsa, paths derleyici seçeneğini eski
        jsconfig.json dosyasından yeni tsconfig.json dosyasına kopyalayın ve eski
        jsconfig.json dosyasını silin.
      
Minimum TypeScript Version
        İçe aktarma adlarında tür değiştiriciler
        ve
        performans iyileştirmeleri
        gibi sözdizimi özelliklerini elde etmek için
        TypeScript
        'in en az v4.5.2 sürümünde olmanız şiddetle tavsiye edilir.
      
Static Generation and Server-side Rendering
        İçin getStaticProps, getStaticPathsve
        getServerSidePropssırasıyla GetStaticProps, GetStaticPaths ve
        GetServerSideProps türlerini kullanabilirsiniz:
      
import { GetStaticProps, GetStaticPaths, GetServerSideProps } from 'next'
 
export const getStaticProps = (async (context) => {
  // ...
}) satisfies GetStaticProps
 
export const getStaticPaths = (async () => {
  // ...
}) satisfies GetStaticPaths
 
export const getServerSideProps = (async (context) => {
  // ...
}) satisfies GetServerSidePropsBilmekte fayda var:
satisfies, 4.9 sürümünde TypeScript'e eklenmiştir. TypeScript'in en son sürümüne yükseltmenizi öneririz.
API Routes
Aşağıda, API rotaları için yerleşik türlerin nasıl kullanılacağına dair bir örnek verilmiştir:
import type { NextApiRequest, NextApiResponse } from 'next'
 
export default function handler(req: NextApiRequest, res: NextApiResponse) {
  res.status(200).json({ name: 'John Doe' })
}Yanıt verilerini de yazabilirsiniz:
import type { NextApiRequest, NextApiResponse } from 'next'
 
type Data = {
  name: string
}
 
export default function handler(
  req: NextApiRequest,
  res: NextApiResponse<Data>
) {
  res.status(200).json({ name: 'John Doe' })
}
        Custom App
      
      
        Özel bir
        
          App adresiniz varsa, yerleşik
        AppProps türünü kullanabilir ve dosya adını aşağıdaki gibi ./pages/_app.tsx olarak
        değiştirebilirsiniz:
      
import type { AppProps } from 'next/app'
 
export default function MyApp({ Component, pageProps }: AppProps) {
  return <Component {...pageProps} />
}Path aliases and baseUrl
        Next.js otomatik olarak tsconfig.json "paths" ve
        "baseUrl" seçeneklerini destekler.
      
Bu özellik hakkında daha fazla bilgiyi Modül Yolu takma adları belgesinde bulabilirsiniz.
Type checking next.config.js
        next.config.js dosyası Babel veya TypeScript tarafından ayrıştırılmadığı için bir JavaScript dosyası olmalıdır,
        ancak aşağıdaki gibi JSDoc kullanarak IDE'nize bazı tür denetimleri ekleyebilirsiniz:
      
// @ts-check
 
/**
 * @type {import('next').NextConfig}
 **/
const nextConfig = {
  /* config options here */
}
 
module.exports = nextConfigIncremental type checking
        v10.2.1 Next.js, tsconfig.json adresinizde etkinleştirildiğinde
        
          artımlı tür denetim
        ini desteklediğinden, bu daha büyük uygulamalarda tür denetimini hızlandırmaya yardımcı olabilir.
      
Ignoring TypeScript Errors
        Next.js, projenizde TypeScript hataları mevcut olduğunda üretim derlemenizde başarısız olur (next build).
      
Next.js'nin uygulamanızda hatalar olsa bile tehlikeli bir şekilde üretim kodu üretmesini istiyorsanız, yerleşik tür denetimi adımını devre dışı bırakabilirsiniz.
Devre dışı bırakılmışsa, derleme veya dağıtım işleminizin bir parçası olarak tür denetimlerini çalıştırdığınızdan emin olun, aksi takdirde bu çok tehlikeli olabilir.
        next.config.js adresini açın ve typescript yapılandırmasında
        ignoreBuildErrors seçeneğini etkinleştirin:
      
module.exports = {
  typescript: {
    // !! WARN !!
    // Dangerously allow production builds to successfully complete even if
    // your project has type errors.
    // !! WARN !!
    ignoreBuildErrors: true,
  },
}Custom Type Declarations
        Özel türleri bildirmeniz gerektiğinde, next-env.d.ts adresini değiştirmek isteyebilirsiniz. Ancak bu dosya
        otomatik olarak oluşturulduğundan yaptığınız tüm değişiklikler üzerine yazılacaktır. Bunun yerine, yeni bir dosya oluşturmalısınız, buna
        new-types.d.ts diyelim ve tsconfig.json adresinizde bu dosyaya referans verin:
      
{
  "compilerOptions": {
    "skipLibCheck": true
    //...truncated...
  },
  "include": [
    "new-types.d.ts",
    "next-env.d.ts",
    ".next/types/**/*.ts",
    "**/*.ts",
    "**/*.tsx"
  ],
  "exclude": ["node_modules"]
}Version Changes
| Version | Changes | 
|---|---|
| v13.2.0 | Statically typed links are available in beta. | 
| v12.0.0 | SWC is now used by default to compile TypeScript and TSX for faster builds. | 
| v10.2.1 | Incremental type checking
                support added when enabled in your tsconfig.json. |