목차
Generics
实用类型
웹 프론트엔드 JS 튜토리얼 TypeScript에서 알아야 할 7가지 방법에 대한 간략한 토론

TypeScript에서 알아야 할 7가지 방법에 대한 간략한 토론

Sep 17, 2021 am 10:53 AM
typescript 제네릭

이 기사에서는 여러분이 알아야 할 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>

OmitPick相反。 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>

RequiredPartial相反。它构造了一个类型的所有属性都是必填的类型。它可以被用来确保在一个类型中没有可选属性出现。

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 &#39;name&#39; because it is a read-only property.
로그인 후 복사

6. ReturnType<Type>

ReturnType

유틸리티 유형

TypeScript는 몇 가지 일반적인 유형 변환을 수행하는 데 도움이 되는 몇 가지 유용한 유틸리티 유형을 기본적으로 제공합니다. 이러한 유틸리티 유형은 전 세계적으로 사용 가능하며 모두 제네릭을 사용합니다.

다음 7가지가 제가 자주 사용하는 것들이에요.

1. Pick<Type, Keys>

Pick은 Type에서 Keys 속성 세트를 선택하여 새로운 유형의 조합이 될 수 있습니다. 리터럴 또는 문자열 리터럴. Keys 값은 Type 의 키여야 합니다. 그렇지 않으면 TypeScript 컴파일러가 오류를 발생시킵니다. 이 유틸리티 유형은 속성이 많은 개체에서 특정 속성을 선택하여 더 가벼운 개체를 만들려는 경우 특히 유용합니다.

import axios from &#39;axios&#39;

type Response = ReturnType<typeof axios>

function callAPI(): Response{
  return axios("url")
}
로그인 후 복사

2. 생략

생략선택의 반대입니다. 는 유지할 속성이 아니라 생략할 속성 키 집합을 의미합니다. 이는 객체에서 특정 속성을 제거하고 다른 속성을 유지하려는 경우에 더 유용합니다. 🎜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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

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

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌
Will R.E.P.O. 크로스 플레이가 있습니까?
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

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

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

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

일반 함수가 Golang의 가변 매개변수 유형 문제를 해결합니까? 일반 함수가 Golang의 가변 매개변수 유형 문제를 해결합니까? Apr 16, 2024 pm 06:12 PM

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

golang의 제네릭의 특정 애플리케이션 시나리오 golang의 제네릭의 특정 애플리케이션 시나리오 May 04, 2024 am 11:45 AM

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

Java 함수 제네릭의 상한과 하한은 무엇입니까? 사용하는 방법? Java 함수 제네릭의 상한과 하한은 무엇입니까? 사용하는 방법? Apr 26, 2024 am 11:45 AM

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

Golang 제네릭이 함수 서명 및 매개변수에 미치는 영향은 무엇입니까? Golang 제네릭이 함수 서명 및 매개변수에 미치는 영향은 무엇입니까? Apr 17, 2024 am 08:39 AM

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

Golang의 일반 함수에는 어떤 제한이 있나요? Golang의 일반 함수에는 어떤 제한이 있나요? Apr 16, 2024 pm 05:12 PM

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

Java 열거형 유형은 제네릭과 어떻게 작동합니까? Java 열거형 유형은 제네릭과 어떻게 작동합니까? May 04, 2024 am 08:36 AM

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

일반 함수에서 golang 변수 매개변수를 사용할 수 있나요? 일반 함수에서 golang 변수 매개변수를 사용할 수 있나요? Apr 29, 2024 pm 02:06 PM

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

Java 일반 메소드는 유형 추론을 어떻게 수행합니까? Java 일반 메소드는 유형 추론을 어떻게 수행합니까? May 01, 2024 pm 02:45 PM

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

See all articles