TypeScript 파일에 "엄격 사용"이 필요합니까?
TypeScript 코드 파일에서 "엄격한 사용" 행을 어디에 넣어야 하는지에 대한 게시물을 보았습니다.제 질문은, 도대체 왜 가지고 있는 걸까요?
TypeScript는 이미 강력한 입력 언어이기 때문에 "엄격 사용"은 무엇을 추가합니까?
갱신
- TypeScript 1.8+:
"use strict";
모듈로 출력됩니다(자세한 내용은 참조). - TypeScript 2.1+:
--alwaysStrict
컴파일러 옵션은 모든 파일을 엄밀한 모드로 해석하여 내보냅니다."use strict"
출력되는 모든 파일의 맨 위에 표시됩니다(자세한 내용은 읽기).
TypeScript의 테스트에서 "엄격한 모드"를 검색하면 몇 가지 예를 찾을 수 있습니다.
다음은 컴파일 시간 오류를 발생시키는 코드 예시입니다."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";
실행 시에만 오류가 발생합니다.예를 들어 다음과 같습니다.
"use strict";
delete Object.prototype;
개인적으로 TypeScript에서 실수를 방지하는 데 도움이 되지 않고 파일에 노이즈가 더해져 쓸 필요가 없습니다.즉, TS 2.1부터, 이 기능을 유효하게 합니다.--alwaysStrict
컴파일러 옵션은 코드 유지 보수 오버헤드 없이 약간의 엄격함을 추가하기 때문입니다.
내 돈으로는, 그래"use strict";
를 TypeScript 파일에 포함해야 합니다.
컴파일 시간 효과 무시"use strict";
TypeScript에서는 생성된 JavaScript가 실행되면 런타임에 영향이 있을 수 있습니다.
MDN은 박스를 회피하기 위한 퍼포먼스 향상을 특정합니다.
this
기능 호출 및 의 삭제function.caller
그리고.function.arguments
특성.Mozilla의 Jeff Walden씨도 이 답변에서 퍼포먼스 향상의 기회를 시사하고 있습니다.
언급URL : https://stackoverflow.com/questions/31391760/use-strict-needed-in-a-typescript-file
'programing' 카테고리의 다른 글
Autoahead.js 0.10 단계별 / remote / prefetch / local 사용방법 (0) | 2023.03.06 |
---|---|
경로 변수를 사용하여 th:href에 대한 타임 리프 (0) | 2023.03.06 |
EventSource의 HTTP 인가 헤더(서버가 송신한 이벤트) (0) | 2023.03.06 |
리액트 기반 어플리케이션 사용 시 redux와 reflux의 핵심 차이점은 무엇입니까? (0) | 2023.03.06 |
request Animation Frame과 cancel Animation Frame을 사용할 때 use Effect 실행 순서와 내부 정리 로직은 무엇입니까? (0) | 2023.03.01 |