Typescript 101 - 타자, 인터페이스, 매거진, 세상에!
15121 단어 typescriptjavascript
타자 스크립트는 무엇입니까?
자바스크립트는 인터넷의 언어로 단기간 내에 바뀌지 않을 것이다. 프로젝트와 팀 규모가 커지면서 자바스크립트의 높은 유연성 때문에 오류를 방지하거나 포착하기 어렵다.
다른 언어에서 타자는 몇 가지 장점이 있다.
최종 결과는 브라우저가 호환하는 자바스크립트입니다. 그러나 가장 멋진 자바스크립트 기능과 Typescript에서 작동하는 버그를 방지하는 모든 기능을 얻을 수 있습니다.
시작해보도록 하겠습니다.
본 강좌에 대해 저는 다음과 같은 코드 샌드박스를 사용할 것입니다. https://codesandbox.io/s/typescript-starter-u7of1
로컬 typescript 설정을 처음부터 만들려면 다음 명령을 실행할 수 있습니다.
npx merced-spinup ts projectName
npx merced-spinup reactts projectname
첫 번째 변수 입력
인덱스의 현재 내용을 모두 삭제합니다.코드sandbox 컨트롤러를 열면 브라우저 화면을 사용하지 않습니다. 터미널이 모든 공간을 차지할 수 있습니다.변수를 만들어 봅시다!
let myFirstVariable: string = "3"
console.log(myFirstVariable)
변수 이름 뒤에 있는 :string
를 주의하십시오. 이것은 우리가 변수에 포함해야 할 내용을 정의합니다.myFirstVariable를 재할당해 보겠습니다.myFirstVariable = 3
console.log(myFirstVariable)
IDE에 문자열 유형에 숫자를 지정할 수 있는 빨간색 선 오류가 표시됩니다.코드sandbox를 사용하기 때문에 컴파일 오류가 발생하지 않지만, 로컬에서 컴파일하면 같은 오류가 발생합니다.더 복잡한 유형 입력
어레이
만약 내가 하나의 수조를 가지고 있다면, 나는 이렇게 그것을 입력할 수 있다.
const myArray: [string] = ["Hello", "World"]
console.log(myArray)
이것은 ts myArray가 문자열 그룹이어야 한다는 것을 알려 줍니다. 만약 내가 비 문자열 값을 추가하려고 시도한다면 오류가 발생할 수 있습니다.myArray.push(5)
만약 숫자와 문자열이 있는 그룹을 원한다면, 우리는 내장된 TS 전의 도안을 사용하여any를 채울 수 있습니다.const myArray: [any] = ["Hello", "World"]
console.log(myArray)
myArray.push(5)
any 형식은 받아들일 수 있는 모든 내용을 허용하지만, 실제 오류를 포착하는 컴파일 오류나 문법 강조 오류를 포착하는 데 도움이 되지 않습니다.const myArray: Array<string | number> = ["Hello", "World"]
console.log(myArray)
myArray.push(5)
이 문법은 그룹의 모든 요소가 문자열이나 숫자일 수 있음을 나타낸다.오브젝트
비클래스 대상에 대해 우리는 새로운 입력 인터페이스를 만들어야 한다. (클래스로 생성된 대상에 대해 클래스는 유형이다.)
interface Person {
name: string
age: number
email: string
}
const Alex: Person = { name: "Alex Merced", age: 35 }
console.log(Alex)
현재 우리가 얻은 오류는 이메일 속성을 잃어버렸다는 것을 알려 줍니다.만약 우리가 전자 우편 속성을 원한다면, 우리는 그것이 선택할 수 있기를 희망합니까?interface Person {
name: string
age: number
email?: string
}
const Alex: Person = { name: "Alex Merced", age: 35 }
console.log(Alex)
물음표를 추가하면 TS가 속성이 존재할 수 있음을 알 수 있지만 필요하지 않습니다.코드를 사용하는 팀원들에게 필요한 속성은 매우 유용하다. TS는 코드가 정확하게 실행되는 데 필요한 속성을 잊어버릴 때 경고를 보내고, 속성 이름이 유형이 있으면 정확한 유형이 부족하고 유형에 타자 오류가 존재하지 않는다고 불평하기 때문이다.기능
다음은 유형화 함수의 예이다...
const addNums = (x: number, y: number): number => {
return x + y
}
console.log(addNums(3, 3))
console.log(addNums(3, "3"))
매개 변수는 모두 입력한 것이고, 되돌아오는 값은 매개 변수의 괄호 밖에서 입력한 것이니 주의하십시오.두 번째 콘솔에서 오류가 있을 것입니다.로그는 숫자가 필요할 때 문자열을 매개 변수로 전달하기 때문입니다.매거
매거는 상수 집합을 정의할 수 있도록 합니다.값을 지정하지 않으면 값이 순서대로 지정됩니다.이것은 사용자가 사용하기 쉬운 명칭 상수에 직관적이지 않은 값을 분배할 수 있도록 합니다.예를 들어 하나의 상표명으로 하나의 서열 번호를 표시한다.
enum LifeStage {
baby = 1,
toddler,
child,
teenager,
adult,
senior,
}
interface Person {
name: string
height: number
inches: number
stage: number
}
const Alex: Person = {
name: "Alex Merced",
height: 5,
stage: LifeStage.adult,
inches: 10,
}
console.log(Alex)
첫 번째 LifeStage에 대한 값만 지정했기 때문에 다른 것은 모두 그것에 비해 번호를 매기기 때문에 로그에 stage의 값은 5로 표시됩니다.만약 내가 첫 번째 값 단계에 대해 번호를 매기지 않았다면, 그것은 4가 될 것이다. 왜냐하면 그것은 0으로 그것들을 매기기 시작하기 때문이다.사용자 정의 유형
너도 너의 유형을 미리 명명할 수 있다. 그러면 매번 그것들을 인쇄할 필요가 없다.다음은 몇 가지 예다.
type yesno = "yes" | "no"
이것은 yes 또는 no만 문자열 값으로 받아들이는 형식입니다type weirdarray = [string, number, boolean]
이런 유형은 이 순서대로 배열된 문자열, 숫자, 부울 값의 그룹만 받아들인다.type error = "network error" | "schema error"
type success = "success"
type response = error | success
여기에 우리는 두 가지 유형을 정의했다. error는 몇 개의 문자열 중 하나여야 하고, success는 success일 수밖에 없다.그리고 우리는 이런 유형 중 어느 것이든지 유형을 만들 수 있다.type response = error | success
interface data {
data: Object<any>
}
interface res {
response: response
}
type APIResponse = data & res
따라서 대상이 APIresponse를 성공적으로 검사하려면 데이터 속성, 즉 모든 속성이 있는 대상과response 유형의 응답 속성이 있어야 한다.밑줄
Typescript는 Javascript를 진정으로 바꾸지 않았습니다. 코드 라이브러리의 증가와 점점 더 많은 사람들이 코드를 작성하기 때문에 더 빠른 디버깅 과정에서 오류를 줄일 수 있습니다.
Reference
이 문제에 관하여(Typescript 101 - 타자, 인터페이스, 매거진, 세상에!), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/alexmercedcoder/typescript-101-typing-interfaces-and-enums-oh-my-1166텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)