면접 타자 원고

3556 단어 typescriptjavascript
때때로 JavaScript는 당신의 뜻을 추측하려고 시도합니다.
예:
true + []

// returns "true"
자바스크립트는 아무 말도 하지 않고 결과만 얻어서 도움을 주려고 하지만 때로는 대가가 있다고 할 수 있다.때때로 코드가 생산에 들어가기 전에 자바스크립트가 추측한 오류를 찾을 수 없을 수도 있습니다.TypeScript는 오류 메시지를 보다 신속하게 제공하여 문제를 해결합니다.
예:
true + []

//error TS2365: Operator '+' cannot be applied to types 'true' and 'never[]'.

한 장면


언젠가 자바스크립트 코드가 생산에 들어간 후에 자주 유형 오류가 발생한다고 불평하는 것을 발견하게 될 것이다.골치 아픈 일입니다. 자바스크립트 문제를 처리하기 위해 사람을 고용할 수 없습니까?자바스크립트 코드와 손잡고 작업하고 실행하기 전에 유형 오류를 포착할 수 있는 사람을 찾을 수 없습니까?

면접 과정


당신은 해커 뉴스에 24시간 안에 TypeScript의 이력서가 당신의 수신함에 들어갈 모집 게시물을 발표했습니다.그들은 그럴듯한 구직서 한 통을 가지고 있으니, 네가 그들에게 전화를 해서 그들이 휴대전화 화면에서 한 번 보게 해라.이 후보가 눈길을 끄는 것은 프로그램을 작성할 때 텍스트 편집기에서 잘못된 소식을 전달할 것이라고 말했기 때문이다.현장 방문을 위해 TypeScript 를 초대합니다.
현장에서 TypeScript는 코드가 실행되기 전에 유형 검사를 어떻게 하는지 완벽하게 설명합니다.그러나 매사가 어떻게 운영되는지에 대해서는 여전히 많은 문제가 있다.
"이봐, 우리 이거 좀 보자. 이게 내 코드가 지금 컴파일하는 방식인 거 알아."
너는 기호펜을 잡고 칠판에 써라.
JavaScript 코드가 어떻게 실행되는지에 대한 고급 개요:
  • JavaScript 소스 코드는 컴파일러라는 프로그램에서 해석됩니다. 이 프로그램은 코드를 AST(추상적인 문법 트리)로 변환합니다. AST는 빈칸, 주석, 빈칸을 무시하는 데이터 구조입니다.
  • AST가 바이트 코드로 변환됩니다.
  • 바이트 코드가 다른 런타임이라는 프로그램에 입력되었는데, 이것은 코드가 평가될 때이다.
  • TypeScript는 고개를 끄덕여 동의를 표시하며 "네, 이것이 바로 자바스크립트 코드의 운행 방식입니다. 제가 참여했을 때, 컴파일러가 코드의 유형을 검사할 수 있는 추가 절차가 있습니다."라고 말했다.
  • TypeScript 소스 코드를 TypeScript AST
  • 로 컴파일
  • 검사 유형 스크립트 AST
  • TypeScript AST에서 JavaScript로 변환
  • JavaScript에서 JavaScript AST로 변환
  • JavaScript AST를 바이트 코드로 변환합니다.
  • 바이트 코드가 실행될 때 평가합니다.
  • TypeScript는 "실행하기 전에 유형 오류를 포착하는 능력이 향상되었지만 실행 코드의 결과는 바뀌지 않습니다. 문법적으로 모든 유효한 JavaScript는 유효한 TypeScript입니다. 다시 말하면 TypeScript를 사용하면 실제로 JavaScript 코드의 작업 방식을 바꾸지 않았습니다"라고 덧붙였다.

    TypeScript sometimes refers to themselves in third person. :D


    기술적 문제


    일이 순조롭게 진행되고 있어서 모든 것이 순조롭게 진행되고 있는 것 같다.너는 깊이 파고들어 더 어려운 문제를 묻기로 결정했다.
    당신은 동적 유형입니까, 아니면 정적 유형입니까?
    TypeScript는 "나는 그 중 하나가 아니다. 유형 주석을 사용하여 유형을 정의할 수도 있고, 간단하게 무시할 수도 있다. 나는 최선을 다해 유형을 추정할 것이다. 내가 컴파일할 때 프로그램의 모든 내용의 유형을 알았을 때, 나는 최상의 상태에 있었지만, 만약 내가 이 모든 정보를 가지고 있지 않다면, 나는 여전히 모든 내용을 컴파일할 수 있다.
    다음으로, "만약 우리가 당신에게 이전한다면, 우리는 즉시 모든 내용을 TypeScript로 옮겨서 코드가 정상적으로 작동하도록 해야 합니까?"라고 물어볼 것이다.
    TypeScript는 웃으며 대답했다. "당신은 처음부터 완전한 유형을 덮어쓸 필요가 없습니다. 점차적으로 저를 데리고 들어올 수 있습니다. 이것은 제가 전에 언급한 것과 연결됩니다. 모든 자바스크립트는 유효한 TypeScript입니다."
    잠시 멈춘 후, Type Script는 "보세요. 컴파일러가 코드 유형을 검사할 때 복구해야 한다고 미리 말씀드릴게요. 어떤 사람들은 제가 좀 불평한다고 말할 수도 있지만, 저는 그저 그것을 어떻게 생각하는지라고 말합니다."라고 말했다.
    너는 이런 오만함에 대해 약간의 반감을 가지고 있지만, 어쨌든 너는 그들의 투명성에 감사해야 한다.다음은 그들이 잘못을 발견한 후에 어떻게 의사소통을 하는지 물어보면 더욱 부드러운 기술로 돌아갈 수 있다.
    이에 대해 그들은 "상당히 괜찮은 텍스트 편집기가 있다면, 수정해야 할 곳에서 빨간색 곡선을 볼 수 있을 것이다. 이것은 내가 번역할 때의 유형 검사로 거슬러 올라갈 수 있다. 번역할 때 실행할 때 문법과 유형 오류를 주는 것이 아니다."라고 대답했다.

    연장 견적


    TypeScript, 너 채용됐어!



    자료출처: Programming TypeScript, 2019년 5월.보리스 체니.제2장.TypeScript: 10000피트 뷰

    좋은 웹페이지 즐겨찾기