왜 나는 TypeScript로 이사했고 유감도 없었다
TypeScript는 ECMAScript(JavaScript)가 실현하지 못한 일련의 장점을 제공합니다.그러니 우리 하나씩 토론합시다.
타입
TypeScript에 대해 작업하지 않거나 들어 본 적이 없는 사람:
…it is a typed superset of JavaScript that compiles to plain JavaScript
언어 이름에서 알 수 있듯이 TS 사용 유형은 주로 다르다.그래서 그렇습니다. 강형 언어로 약 50%의 자바스크립트 개발자가 이 기능이 부족하고 나머지 50%는 다른 강형 언어를 싫어합니다.응답 형식이나 다른 데이터를 인용하지 않은 상황에서 우리는 코드에 많은 자유를 가지고 있지만, 동시에 이러한 자유도는 디버깅하기 어려운 많은 오류를 초래하는 주요 원인이다. (이런 단어가 존재하는지 확실하지 않다.)
내가 보기에 유형은 매우 좋다.그것들은 당신의 코드를 더욱 정확하게 하고 다른 개발자들도 쉽게 이해할 수 있게 한다.귀환 유형을 의향적으로 정의할 때, 귀환 방법의 내용을 쉽게 볼 수 있고, 다른 내용을 귀환하는 것을 방지할 수 있습니다.두 번째 장점은 Http 요청의 응답 유형을 보는 것입니다.JavaScript에서 코드가 제대로 작동하지 않을 때 디버그 오류가 얼마나 고통스러운지 알고 있습니다. 인용한 응답 속성이 존재하지 않을 수도 있기 때문입니다.따라서 성명 응답 유형은 개발자가 이런 어려움을 겪는 것을 방지할 수 있다.
클래스 및 인터페이스
ES6가 수업을 도입했다고 알려준 사람들에 대한 나의 대답은 "네, 알고 있습니다."였다.그러나 typescript는 클래스와 유형에 관한 것이 아니다.TS 클래스를 언급하지 않으면 개발자에게 클래스의 공공, 개인, 정적, 읽기 전용 구성원을 제공하고 추상적인 클래스와 인터페이스를 소개합니다. 이것은 현재 자바스크립트에 없는 것입니다.
추상 클래스는 TypeScript가 아닌 OOP의 더 높은 테마의 일부분이지만, 그것들은 여전히 언급할 가치가 있다.다음은 TS 공식 파일의 참조입니다.
Abstract classes are base classes from which other classes may be derived. They may not be instantiated directly. Unlike an interface, an abstract class may contain implementation details for its members. The abstract keyword is used to define abstract classes as well as abstract methods within an abstract class.
추상류의 가장 간단하고 생동감 있는 예는 다음과 같다.
abstract class Animal {
abstract makeSound(): void;
move(): void {
console.log(“roaming the earth…”);
}
}
인터페이스는 TypeScript에 도입된 또 다른 중요한 특성으로 추상 클래스에 비해 실제로 매일 사용되고 있다.일반적으로 Typescript에서 인터페이스는 자신의 데이터 형식을 명명하는 역할을 하는데 코드 내에서 계약을 정의하고 프로젝트 밖에서 코드 계약을 정의하는 강력한 방식으로 여겨진다.이것은 인터페이스가 클래스나 데이터 형식의 프레임워크를 정의하는 데 도움을 줄 수 있음을 의미하며, 실제 구현은 다를 수 있습니다.공공, 사유, 보호, 정적, 읽기 전용 수식자
앞에서 언급한 바와 같이 ES6는 자바스크립트 개발자에게 클래스를 도입했지만 중요한 일인 수식자를 무시했다.TypeScript는 더 고급스럽고 진보적인 JavaScript 버전이기 때문에 이 공백을 성공적으로 메웠다.public,private,protected,static,readonly 같은 수식자가 있으면 우리는 변수, 속성과 방법을 상응하는 범위에 포함할 수 있다.그 밖에 생활이나 제시 패턴과 같은 다른 변통 방법을 더 이상 사용할 필요가 없다.TypeScript를 사용하여 클래스 외부에서 액세스해야 할 필드와 방법, 액세스하지 말아야 할 필드, 변경이 허용되는 필드, 항상 변경되지 않는 필드를 쉽게 정의할 수 있습니다.
이름 공간 및 모듈
ES6에 비해 TypeScript는 개발자가 코드를 구성하는 데 도움을 주는 많은 모듈을 제공했고 C# 등 다른 OOP 언어에서 이 명칭 공간을 대량으로 사용했다.
간단히 말하면 명칭 공간은 코드를 조직하는 방식으로 코드를 다른 부분으로 나누어 응용 프로그램의 다른 부분에서 코드에 접근할 수 있도록 한다.
한 무더기의 변수로 전체 범위를 파괴하고 싶지 않을 때, 이름 공간을 사용하는 것이 특히 유용합니다.이외에 응용 프로그램이 상당히 클 때 인터페이스가 매우 편리하기 때문에 우리는 코드를 여러 파일로 나누어 장래에 더욱 쉽게 유지보수할 수 있도록 하기를 희망한다.
TypeScript는 여전히 JavaScript입니다.
마지막으로 가장 중요하지 않은 점은 TypeScript가 여전히 JavaScript라는 것이다.TS는 ES6 기능을 기반으로 새로운 방법을 제공하거나 기존 방법을 변경하지 않습니다.TS 코드를 JavaScript로 컴파일하면 동일한 원형 상속이 표시됩니다.컴파일된 JS 코드에서는 인터페이스, 장식기, 수식자가 존재하지 않습니다.따라서 JavaScript 위에 있는 레이어일 뿐 개발자의 경험을 개선하고 불필요한 오류 발생을 방지할 수 있습니다.
또한 TypeScript 코드를 컴파일할 JavaScript 버전을 자유롭게 선택할 수 있으며, 이는 Internet Explorer에서도 실행할 수 있음을 의미합니다.
내 뜻을 오해하지 마라. 나는 우리가 자바스크립트로 작성하는 것을 멈추고 TypeScript로 작성해야 한다고 말하는 것이 아니다.JavaScript는 점점 더 빠르게 발전하는 위대한 언어입니다.그것의 인기는 해마다 증가하고 있으며, 지금은 가장 유행하고 자주 사용하는 프로그래밍 언어 중의 하나이다.그럼에도 불구하고 앞으로 개선해야 할 점이 많다. 이것이 바로 TypeScript가 역할을 발휘할 부분이다.
Reference
이 문제에 관하여(왜 나는 TypeScript로 이사했고 유감도 없었다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/vbrdnk/why-i-moved-to-typescript-and-have-no-regrets-3174텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)