Tsconfig.json'daki target nedir?


93

Neyi targetde tsconfig.jsondelalet?

{
  "compilerOptions": 
  {
    "sourceMap": true,
    "target": "es5",
    "module": "commonjs",
    "jsx": "react",
    "moduleResolution": "classic",
    "lib": [ "es2015", "dom",  "es2017" ]
  }
}

Yanıtlar:


107

Typescript için oldukça yeniyim. Tsconfig.json'daki Hedef ne anlama geliyor?

targetanlamına hangi JavaScript hedef verilen typescript yayılan edilmelidir . Örnekler:

target:es5

()=>nullfunction(){return null}ES5'in ok işlevi olmadığı için olacaktır .

target:es6

()=>null()=>nullES6 ok işlevlerine sahip olduğu için haline gelecektir .


5
eğer es5'i hedeflersem babel'e ihtiyacım var mı ayrıca typcript kodum eşzamansız içeriyor ve bekliyorsam, hedefi es5 olarak verirsem bu derlenecek mi?
Ankit Raonka

4
Bunun için babele ihtiyacım yok 🌹
basarat

Kullanıyordum es5ama yok etme [...arr].mapolarak yorumluyor arr.slice().map, ki bu, sahip olmayan dizi benzeri nesneler için kırılıyor slice. Es6'yı hedeflediğimde, tarayıcımda çalışmaya başlıyor, ancak herkes için işe yarayacak mı?
Qwerty

@Qwerty Hayır, olmayacak. Örneğin, es6'yı desteklemediğinden ve .map işlevine sahip olmadığından Internet Explorer 11'de çalışmaz. Es5'i hedefleseniz bile, STILL Internet Explorer'da çalışmayacaktır, çünkü bu çoklu dolgular eklemek aktarıcının işi değildir. Es6 olmayan tarayıcıları desteklemek istiyorsanız yine de bir çoklu dolgu eklemeniz gerekir.
pabrams

@pabrams yani IE11 tüm ES5'i desteklemiyor mu?
Qwerty

10

Hedef, derlemekte olduğunuz JavaScript sürümünü değiştirir.

Seçenekler https://www.typescriptlang.org/docs/handbook/compiler-options.html adresinde mevcuttur.

Hedef bayrağının kodumu nasıl değiştirdiğini daha iyi anlamaya çalışmak adına, farklılıkları daha iyi anlamak için farklı sürümlerin her birine bazı test kodları derledim.

https://github.com/aizatto/typescript-playground/tree/master/dist/test-async-main

Ayrıca baktığım ortama bağlı olarak neyi hedeflemem gerektiğini de not alıyorum

https://www.aizatto.com/notes/typescript

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.