0Pricing
TypeScript Academy · Ders

Türlendirilmemiş Üçüncü Taraf Kitaplıklarını Yönetme

@types paketlerini kullanın ve el ile bildirimler yazın

Türlendirilmemiş Üçüncü Taraf Kitaplıklarını Yönetme, CoddyKit'te ücretsiz bir TypeScript Academy dersidir. Bu, 4 dersinin 4. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, TypeScript Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. TypeScript Academy kursu toplamda 4 dersten oluşur.

Sorun: Eksik Türler

Bazı npm paketleri TypeScript bildirimleriyle birlikte gelmez ve @types/ paketi bulunmaz. TypeScript bunları varsayılan olarak any kabul eder ve sınırda tür güvenliğini kaybeder.

import legacyLib from "untyped-lib"; // legacyLib: any

@types Paketleri

DefinitelyTyped projesi, binlerce kütüphane için topluluk tarafından sürdürülen tür bildirimleri sağlar. npm'de @types/library-name araması yapın.

npm install --save-dev @types/lodash
npm install --save-dev @types/express
# Now lodash and express have full TypeScript types

Bildirim Dosyası Yazma (.d.ts)

Hiçbir @types paketi yoksa modülü ve türlerini bildirmek için projenizde minimal bir bildirim dosyası yazın.

// src/types/untyped-lib.d.ts
declare module "untyped-lib" {
  export function doSomething(x: string): number;
  export const version: string;
}

Modül Genişletme

Mevcut bir modülü çatallamadan, kendi bildirimlerinizi mevcut modüle ekleyerek üçüncü taraf türlerini genişletin.

// Extend Express Request with a custom property
declare namespace Express {
  interface Request {
    user?: AuthUser;
  }
}

Joker Karakterli Modül Bildirimleri

Türsüz içe aktarmaların tüm kategorileri (ör. varlık dosyaları) için joker karakterli modül bildirimlerini kullanın.

// src/types/assets.d.ts
declare module "*.svg" {
  const content: string;
  export default content;
}
declare module "*.json" {
  const value: Record<string, unknown>;
  export default value;
}

noImplicitAny ve Türsüz Kütüphaneler

noImplicitAny: true ile türsüz bir modülü içe aktarmak derleme hatasına neden olur. Bir bildirim dosyası kullanın veya // @ts-ignore ile dosya başına noImplicitAny özelliğini devre dışı bırakın.

// Quick fix for a single untyped import:
// @ts-ignore
import untypedLib from "untyped-lib";

DefinitelyTyped'e Katkıda Bulunma

Türsüz bir kütüphane için yüksek kaliteli türler yazarsanız topluluğa yardımcı olmak için bunları DefinitelyTyped'e gönderin.

# Fork DefinitelyTyped and add:
# types/your-library/index.d.ts
# types/your-library/package.json
# Submit a PR at github.com/DefinitelyTyped/DefinitelyTyped

Son Çare Olarak any Kullanma

Türleri hızlıca edinemediğinizde, tür borcunu takip eden bir yorumla birlikte açıkça any kullanın. Bu, kasıtlı ve görünür olduğu için örtük any kullanmaktan daha iyidir.

// eslint-disable-next-line @typescript-eslint/no-explicit-any
const lib: any = require("untyped-lib"); // TODO: add types

Bildirim Hataları için skipLibCheck

Üçüncü taraf bir .d.ts dosyasında dahili hatalar varsa skipLibCheck: true, kendi tür denetiminizi etkilemeden bu hataları susturur.

{
  "compilerOptions": {
    "skipLibCheck": true
  }
}

Güvensiz Kütüphaneler için Tür Sarmalayıcıları

any kullanımını sınırlamak ve kod tabanınızın geri kalanına güvenli, tür belirtilmiş bir API sunmak için türsüz bir kütüphanenin etrafına tür belirtilmiş bir sarmalayıcı modül yazın.

// src/lib/safe-legacy.ts
// eslint-disable-next-line @typescript-eslint/no-explicit-any
const raw: any = require("untyped-lib");
export function doSomething(x: string): number { return raw.doSomething(x); }

Özet: Türsüz Kütüphaneler

Türsüz kütüphaneleri ele alın: önce @types/ paketlerini kontrol edin, minimal bildirim dosyaları yazın, modül genişletmeyi kullanın, tür belirtilmiş sarmalayıcılar oluşturun ve bağımlılıklardaki bildirim hataları için skipLibCheck kullanın.

Hızlı Kontrol

Türsüz bir npm paketinin tür bildirimleri için ilk olarak nereye bakmalısınız?

Öğrendikleriniz

Türsüz kütüphaneler: @types/ paketlerini kontrol edin, bildirim dosyaları yazın, mevcut türleri genişletin, joker karakterli modül bildirimlerini kullanın, güvensiz kütüphaneleri tür belirtilmiş arayüzlerle sarın ve bağımlılık hataları için skipLibCheck kullanın.

Sıkça Sorulan Sorular

“Türlendirilmemiş Üçüncü Taraf Kitaplıklarını Yönetme” dersi ücretsiz mi?

Evet — “Türlendirilmemiş Üçüncü Taraf Kitaplıklarını Yönetme” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve TypeScript Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. TypeScript Academy kursu toplamda 4 dersten oluşur.

“Türlendirilmemiş Üçüncü Taraf Kitaplıklarını Yönetme” dersinde ne öğreneceğim?

@types paketlerini kullanın ve el ile bildirimler yazın TypeScript Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

TypeScript Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te TypeScript Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 4. dersidir.

“Türlendirilmemiş Üçüncü Taraf Kitaplıklarını Yönetme” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu TypeScript Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her TypeScript Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. Geçişi Başlatma: allowJs ve checkJs
  2. Köprü Olarak JSDoc Tür Açıklamaları
  3. Dosya Dosya Dönüştürme Stratejisi
  4. Türlendirilmemiş Üçüncü Taraf Kitaplıklarını Yönetme
← TypeScript Academy Sayfasına Dön