Bir TypeScript kod dosyasında "katı kullan" satırının nereye koyulacağına ilişkin gönderiler gördüm. Sorum şu, neden hiç var?
TypeScript zaten güçlü bir şekilde yazılmış bir dil olduğundan, "katı kullan" ne ekler?
"use strict";
Bir TypeScript kod dosyasında "katı kullan" satırının nereye koyulacağına ilişkin gönderiler gördüm. Sorum şu, neden hiç var?
TypeScript zaten güçlü bir şekilde yazılmış bir dil olduğundan, "katı kullan" ne ekler?
"use strict";
Yanıtlar:
Güncellemeler
"use strict";modüllerde yayınlanır ( Daha fazlasını okuyun ).--alwaysStrictderleyici seçeneği, tüm dosyaları katı modda ayrıştırır ve "use strict"tüm çıktısı alınan dosyaların en üstünde yayınlar ( Daha fazlasını okuyun ).TypeScript testlerini "katı modda" için arayarak bazı örneklerin bir listesini bulabilirsiniz.
Aşağıda, yalnızca aşağıdaki durumlarda bir derleme zamanı hatası atacak bazı kod örnekleri verilmiştir "use strict";:
// future reserved keyword not allowed as variable name
var let,
yield,
public,
private,
protected,
static,
implements;
// "delete" cannot be called on an identifier
var a;
delete a;
// octal literals not allowed
03;
"use strict";Yalnızca çalışma zamanında bir hata atan birkaç örnek daha var . Örneğin:
"use strict";
delete Object.prototype;
Kişisel olarak, TypeScript'te hata yapmamı engellemede o kadar da yararlı bulmuyorum ve bir dosyaya eklediği ek gürültü, onu yazmaktan rahatsız olmama neden oluyor. Bununla birlikte, TS 2.1'den başlayarak --alwaysStrictderleyici seçeneğini etkinleştireceğim çünkü herhangi bir kod bakımı ek yükü olmaksızın hafif bir ek katılık ekliyor.
use strict, bir TS dosyasının en üstünde bildirilen herhangi bir dizenin , dosyanın en üstünde görünmek yerine modül işlevinde görünebileceğini ve dolayısıyla semantiği biraz değiştirebileceğini unutmayın.
"use strict;"
Param için, evet , "use strict";TypeScript dosyalarına dahil edilmelidir.
Typescript üzerindeki derleme zamanı etkileri göz ardı "use strict";edilirse, oluşturulan javascript çalıştırıldığında muhtemelen bir çalışma zamanı etkisi vardır:
MDNthis , işlev çağrılarında kutudan kaçınmada ve function.callerve function.argumentsözelliklerinin kaldırılmasında performans iyileştirmelerini tanımlar .
Mozilla'dan Jeff Walden, bu yanıtta performans kazanımı fırsatlarına da işaret etti .