TypeScript
tsx kendi başına kodunuzu tür kontrol etmez ve bunun ayrı olarak ele alınmasını bekler. tsx TypeScript'in kurulu olmasını gerektirmese de, IDE'niz tarafından sağlanan tür kontrolleri hızlı betikler için yeterli olabilir. Projelerinizde bir tür kontrol adımı eklemeniz şiddetle önerilir.
Geliştirme iş akışı
Tür kontrolü önemlidir ancak her çalıştırmada zaman alıcı ve maliyetli olabilir.
tsx
bu sorunu, tür hatalarıyla engellenmeden doğrudan TypeScript kodu çalıştırmanıza izin vererek hafifletir.
— Tipik iş akışı, işlevsellik üzerinde daha hızlı iterasyon yapmanıza ve tür hatalarını derleme gereksinimleri yerine linting hataları olarak ele almanıza olanak tanır.
Modern IDE'ler, örneğin VSCode, IntelliSense aracılığıyla gerçek zamanlı tür kontrolü sağlar, bu da manuel tür kontrollerine olan ihtiyacı azaltır. Tür kontrolünü dahil etmek için, bunu diğer linters (örneğin ESLint) ile birlikte ön yükleme kancalarında veya CI kontrollerinde ekleyin.
Kurulum
Projelerinizde şunları kurarak başlayın:
typescript
tsc
CLI komutuyla tür kontrolü yapmak için@types/node
TypeScript'e Node.js API türlerini sağlamak için
::: code-group
$ npm install -D typescript @types/node
$ pnpm add -D typescript @types/node
$ yarn add -D typescript @types/node
:::
tsconfig.json
tsconfig.json
TypeScript tarafından kullanılan yapılandırma dosyasıdır.
Tavsiye
Tür kontrolünün kararlı bir şekilde çalışması için önerilen yapılandırma aşağıdadır.
{
"compilerOptions": {
// Dosyaları, import/export kullanmasa bile modül olarak değerlendir
"moduleDetection": "force",
// Modül yapısını yoksay
"module": "Preserve",
// JSON modüllerinin içe aktarılmasına izin ver
"resolveJsonModule": true,
// JS dosyalarının TS'den ve tersine içe aktarılmasına izin ver
"allowJs": true,
// Doğru ESM içe aktarma davranışını kullan
"esModuleInterop": true,
// Çapraz dosya farkındalığı gerektiren özellikleri yasakla
"isolatedModules": true
}
}
::: tip
Ayrıca, tür içe aktarmaları ve dışa aktarmaları yazarken açık sözdizimi kullanmanızı gerektiren verbatimModuleSyntax
özelliğini etkinleştirmeniz önerilir. Yeniden yapılandırma yapılması gerekebilir.
JSX
tsx .jsx
ve .tsx
dosyalarındaki JSX için aşağıdaki yapılandırmaları dikkate alır:
Özel tsconfig.json
yolu
Varsayılan olarak, tsconfig.json
mevcut çalışma dizininden algılanır.
Özel bir yoldan tsconfig.json
dosyası geçmek için --tsconfig
bayrağını kullanın:
tsx --tsconfig ./path/to/tsconfig.custom.json ./file.ts
Tür kontrolü
Tür kontrolü için TypeScript kullanın:
tsc --noEmit
(--noEmit
parametresini tsconfig.json
dosyanızda zaten belirttiyseniz, bunu atlayabilirsiniz)
package.json
betiği
tsc
bir derleyici olduğu için, bu yalnızca tür kontrolü için kullanıldığını belirtmek için package.json
'unuza bir betik ekleyebilirsiniz:
// package.json
{
// ...
"scripts": {
"type-check": "tsc --noEmit" // [!code ++]
},
// ...
}
Ön yükleme kancası
Ön yükleme sırasında tür kontrolü yapmak için simple-git-hooks kullanın:
// package.json
{
// ...
"scripts": {
// `npm install` sırasında Git kancalarını kaydet
"prepare": "simple-git-hooks" // [!code ++]
},
"simple-git-hooks": {
"pre-commit": "npm run type-check", // [!code ++]
// Ya da birden fazla komutunuz varsa
"pre-commit": [
"npm run lint",
"npm run type-check" // [!code ++]
]
}
}
Derleyici sınırları
tsx TypeScript ve ESM'yi derlemek için esbuild kullanır, bu nedenle bazı benzer sınırlamaları paylaşır:
eval()
ile uyumluluk korunmaz- Yalnızca bazı
tsconfig.json
özellikleri destekleniremitDecoratorMetadata
desteklenmez
::: warning Detaylı bilgi için esbuild'in JavaScript tuzakları ve TypeScript tuzakları belgelerine başvurun. :::