TypeScript에서 알아야 할 7가지 방법에 대한 간략한 토론
이 기사에서는 여러분이 알아야 할 TypeScript의 7가지 방법을 공유하겠습니다. 여러분에게 도움이 되기를 바랍니다.
TypeScript의 유형 시스템은 매우 강력합니다. 이는 유형 안전성을 제공합니다. 유형 시스템이 사랑받는 것처럼, 유형과 인터페이스를 계획하고 디자인하지 않으면 코드를 복잡하게 만들고 읽을 수 없게 만들 수도 있습니다.
Generics
코드 중복을 피하고 재사용 가능한 유형을 만드는 것은 간결한 코드를 작성하는 데 중요한 부분입니다. 제네릭은 재사용 가능한 유형을 작성할 수 있게 해주는 TypeScript의 기능입니다. 다음 예를 보세요:
type Add<T> = (a: T, b: T) => T const addNumbers: Add<number> = (a, b) => { return a + b } const addStrings: Add<string> = (a, b) => { return a + b }
두 숫자의 추가 또는 두 문자열의 연결을 설명하는 데 사용할 수 있는 Add
의 일반 유형에 올바른 유형을 입력하세요. 각 함수에 대한 유형을 작성하는 대신 제네릭을 사용하여 한 번만 작성하면 됩니다. 이렇게 하면 노력이 절약될 뿐만 아니라 코드가 더 깔끔해지고 오류 발생 가능성도 줄어듭니다. Add
的泛型中,它可以被用来描述两个数字的相加或两个字符串的连接。我们不需要为每个函数写一个类型,而只需要用泛型做一次。这不仅节省了我们的精力,而且还使我们的代码更加简洁,更不容易出错。
实用类型
TypeScript 原生提供了几个有用的实用类型来帮助我们进行一些常见的类型转换。这些实用类型是全局可用的,它们都使用了泛型。
下面这7个是我经常用到的。
1. Pick<Type, Keys>
Pick
会从 Type 中挑选属性集 Keys 来创建一个新的类型,Keys 可以是一个字符串字面或字符串字面的联合。Keys 的值必须是 Type 的键,否则TypeScript编译器会抱怨。当你想通过从有很多属性的对象中挑选某些属性来创建更轻的对象时,这个实用类型特别有用。
type User = { name: string age: number address: string occupation: string } type BasicUser = Pick<User, "name" | "age"> // type BasicUser = { // name: string; // age: number; // }
2. Omit<Type, Keys>
Omit
与Pick
相反。 Keys
不是说要保留哪些属性,而是指要省略的属性键集。 当我们只想从对象中删除某些属性并保留其他属性时,这个会更有用。
type User = { name: string age: number address: string occupation: string } type BasicUser = Omit<User, "address" | "occupation"> // type BasicUser = { // name: string; // age: number; // }
3. Partial<Type>
Partial
构造了一个类型,其所有的类型属性都设置为可选。当我们在编写一个对象的更新逻辑时,这个可能非常有用。
type User = { name: string age: number address: string occupation: string } type PartialUser = Partial<User> // type PartialUser = { // name?: string; // age?: number; // address?: string; // occupation?: string; // }
4. Required<Type>
Required
与Partial
相反。它构造了一个类型的所有属性都是必填的类型。它可以被用来确保在一个类型中没有可选属性出现。
type PartialUser = { name: string age: number address?: string occupation?: string } type User = Required<PartialUser> // type User = { // name: string; // age: number; // address: string; // occupation: string; // }
5. Readonly<Type>
Readonly
构建了一个类型,其类型的所有属性被设置为只读。重新分配新的值 TS 就会报错。
type User = { name: string age: number address: string occupation: string } type ReadOnlyUser = Readonly<User> const user: ReadOnlyUser = { name: "小智", age: 24, address: "厦门", occupation: "大迁世界" } user.name = "王大冶" // Cannot assign to 'name' because it is a read-only property.
6. ReturnType<Type>
ReturnType
다음 7가지가 제가 자주 사용하는 것들이에요.
1. Pick<Type, Keys>
Pick
은 Type에서 Keys 속성 세트를 선택하여 새로운 유형의 조합이 될 수 있습니다. 리터럴 또는 문자열 리터럴. Keys 값은 Type 의 키여야 합니다. 그렇지 않으면 TypeScript 컴파일러가 오류를 발생시킵니다. 이 유틸리티 유형은 속성이 많은 개체에서 특정 속성을 선택하여 더 가벼운 개체를 만들려는 경우 특히 유용합니다.import axios from 'axios' type Response = ReturnType<typeof axios> function callAPI(): Response{ return axios("url") }로그인 후 복사생략
은선택
의 반대입니다.키
는 유지할 속성이 아니라 생략할 속성 키 집합을 의미합니다. 이는 객체에서 특정 속성을 제거하고 다른 속성을 유지하려는 경우에 더 유용합니다. 🎜rrreee🎜🎜3.Partial<Type>
🎜🎜🎜Partial
은 모든 유형 속성이 선택사항으로 설정된 유형을 구성합니다. 이는 객체에 대한 업데이트 논리를 작성할 때 매우 유용할 수 있습니다. 🎜rrreee🎜🎜4.필수<유형>
🎜🎜🎜필수
는부분
의 반대입니다. 모든 속성이 필요한 유형을 구성합니다. 유형에 선택적 속성이 없는지 확인하는 데 사용할 수 있습니다. 🎜rrreee🎜🎜5.Readonly<Type>
🎜🎜🎜Readonly
유형의 모든 속성이 읽기 전용으로 설정된 유형을 구성합니다. 새 값 TS를 다시 할당하면 오류가 발생합니다. 🎜rrreee🎜🎜6.ReturnType<Type>
🎜🎜🎜ReturnType
함수 유형의 반환 유형에서 유형을 구성합니다. 외부 라이브러리의 함수 유형을 처리하고 이를 기반으로 사용자 정의 유형을 구축하려는 경우 매우 유용합니다. 🎜rrreee🎜위에서 언급한 것 외에도 더 깔끔한 코드를 작성하는 데 도움이 되는 다른 유틸리티 유형이 있습니다. 유틸리티 유형에 대한 TypeScript 문서 링크는 여기에서 찾을 수 있습니다. 🎜🎜🎜https://www.typescriptlang.org/docs/handbook/utility-types.html🎜🎜🎜유틸리티 유형은 TypeScript에서 제공하는 매우 유용한 기능입니다. 개발자는 하드코딩 유형을 피하기 위해 이를 활용해야 합니다. 동료들보다 더 좋아 보이나요? 알아야 할 사항은 다음과 같습니다! 🎜🎜🎜이 기사는 https://segmentfault.com/a/1190000040574488🎜🎜🎜에서 재인쇄되었습니다. 프로그래밍 관련 지식을 더 보려면 🎜프로그래밍 소개🎜를 방문하세요! ! 🎜위 내용은 TypeScript에서 알아야 할 7가지 방법에 대한 간략한 토론의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











Go의 일반 함수는 가변 유형의 문제를 해결합니다. 일반 함수를 사용하면 런타임에 유형 매개변수를 지정할 수 있습니다. 이를 통해 다양한 유형의 인수를 처리할 수 있는 함수를 작성할 수 있습니다. 예를 들어 Max 함수는 두 개의 비교 가능한 매개변수를 허용하고 더 큰 값을 반환하는 일반 함수입니다. 일반 함수를 사용하면 다양한 유형의 매개변수를 처리할 수 있는 보다 유연하고 일반적인 코드를 작성할 수 있습니다.

Go의 제네릭 적용 시나리오: 컬렉션 작업: 필터링과 같은 모든 유형에 적합한 컬렉션 작업을 만듭니다. 데이터 구조: 큐, 스택, 맵과 같은 범용 데이터 구조를 작성하여 다양한 유형의 데이터를 저장하고 조작합니다. 알고리즘: 다양한 유형의 데이터를 처리할 수 있는 정렬, 검색, 축소 등의 범용 알고리즘을 작성합니다.

Java 함수 제네릭을 사용하면 상한 및 하한을 설정할 수 있습니다. 확장은 함수에서 허용하거나 반환하는 데이터 유형이 지정된 유형의 하위 유형이어야 함을 지정합니다. 하한(슈퍼)은 함수에서 허용하거나 반환하는 데이터 유형이 지정된 유형의 슈퍼 유형이어야 함을 지정합니다. 제네릭을 사용하면 코드 재사용성과 보안이 향상됩니다.

Go 함수 서명 및 매개변수에 대한 제네릭의 영향은 다음과 같습니다. 유형 매개변수: 함수 서명에는 함수가 사용할 수 있는 유형을 지정하는 유형 매개변수가 포함될 수 있습니다. 유형 제약 조건: 유형 매개 변수에는 충족해야 하는 조건을 지정하는 제약 조건이 있을 수 있습니다. 매개변수 유형 유추: 컴파일러는 지정되지 않은 유형 매개변수의 유형을 유추할 수 있습니다. 유형 지정: 일반 함수를 호출하기 위해 매개변수 유형을 명시적으로 지정할 수 있습니다. 이를 통해 코드 재사용성과 유연성이 향상되어 여러 유형과 함께 사용할 수 있는 함수 및 유형을 작성할 수 있습니다.

Go 일반 함수의 제한 사항: 유형 매개변수만 지원되고 값 매개변수는 지원되지 않습니다. 함수 재귀는 지원되지 않습니다. 유형 매개변수는 명시적으로 지정할 수 없으며 컴파일러에 의해 유추됩니다.

Java에서 열거형 유형과 제네릭의 조합: 제네릭으로 열거형을 선언할 때 꺾쇠 괄호를 추가해야 하며 T는 유형 매개변수입니다. 일반 클래스를 생성할 때 꺾쇠 괄호도 추가해야 합니다. T는 모든 유형을 저장할 수 있는 유형 매개변수입니다. 이 조합은 코드 유연성, 유형 안전성을 향상하고 코드를 단순화합니다.

Go에서는 가변 매개변수를 일반 함수에 사용할 수 있으므로 가변 개수의 매개변수를 허용하고 여러 유형에 적합한 일반 함수를 생성할 수 있습니다. 예를 들어, 주어진 목록에서 가장 자주 발생하는 요소를 찾는 일반 함수 Mode를 만들 수 있습니다. Mode는 T 유형의 다양한 요소 수를 허용합니다. 각 요소에 대한 개수를 생성하여 요소의 개수를 계산합니다. 그런 다음 가장 많이 나타나는 요소를 찾아서 모드로 반환합니다. 기본 함수에서 문자열 목록과 정수 목록에 대해 Mode 함수를 호출할 수 있습니다. 이 함수는 각각 가장 많이 나타나는 문자열과 숫자를 반환합니다.

Java 일반 메소드는 명시적인 선언 없이 자동으로 유형 매개변수를 추론합니다. 규칙은 다음과 같습니다. 1. 명시적인 유형 선언을 사용합니다. 2. 단일 유형을 추론합니다. 3. 와일드카드 유형을 추론합니다. 이렇게 하면 코드가 단순화되어 일반 메서드를 더 쉽게 작성하고 사용할 수 있습니다.
