Inhaltsverzeichnis
Generika
实用类型
Heim Web-Frontend js-Tutorial Eine kurze Diskussion über 7 wissenswerte Methoden in TypeScript

Eine kurze Diskussion über 7 wissenswerte Methoden in TypeScript

Sep 17, 2021 am 10:53 AM
typescript 泛型

Dieser Artikel stellt Ihnen 7 Methoden in TypeScript vor, die Sie kennen müssen. Ich hoffe, er wird Ihnen hilfreich sein!

Eine kurze Diskussion über 7 wissenswerte Methoden in TypeScript

Das Typsystem in TypeScript ist sehr leistungsfähig. Es bietet uns Typensicherheit. So beliebt Typsysteme auch sind, sie können unseren Code auch unübersichtlich und unlesbar machen, wenn wir Typen und Schnittstellen nicht planen und entwerfen.

Generika

Das Vermeiden von Codeduplizierungen und das Erstellen wiederverwendbarer Typen ist ein wichtiger Bestandteil beim Schreiben von prägnantem Code. Generics sind eine Funktion von TypeScript, die es uns ermöglicht, wiederverwendbare Typen zu schreiben. Schauen Sie sich das folgende Beispiel an:

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
}
Nach dem Login kopieren

Fügen Sie den richtigen Typ in den generischen Typ von Add ein, der zur Beschreibung der Addition zweier Zahlen oder der Verkettung zweier Zeichenfolgen verwendet werden kann. Anstatt für jede Funktion einen Typ zu schreiben, müssen wir dies mit Generika nur einmal tun. Dies erspart uns nicht nur Aufwand, sondern macht unseren Code auch sauberer und weniger fehleranfällig. 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;
// }
Nach dem Login kopieren

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;
// }
Nach dem Login kopieren

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;
// }
Nach dem Login kopieren

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;
// }
Nach dem Login kopieren

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.
Nach dem Login kopieren

6. ReturnType<Type>

ReturnType

Dienstprogrammtypen

TypeScript bietet nativ mehrere nützliche Dienstprogrammtypen, die uns bei der Durchführung einiger gängiger Typkonvertierungen unterstützen. Diese Dienstprogrammtypen sind weltweit verfügbar und verwenden alle Generika.

Die folgenden 7 verwende ich oft.

1. Pick<Type, Keys>

Pick wählt den Attributsatz Keys aus Type aus, um einen neuen Typ zu erstellen von Literalen oder String-Literalen. Der Wert von Keys muss ein Schlüssel vom Type sein, andernfalls wird sich der TypeScript-Compiler beschweren. Dieser Dienstprogrammtyp ist besonders nützlich, wenn Sie ein leichteres Objekt erstellen möchten, indem Sie bestimmte Eigenschaften aus einem Objekt auswählen, das über viele Eigenschaften verfügt.

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

type Response = ReturnType<typeof axios>

function callAPI(): Response{
  return axios("url")
}
Nach dem Login kopieren

2. Omit<Type, Keys>

Omit ist das Gegenteil von Pick. Keys bedeutet nicht, welche Attribute beibehalten werden sollen, sondern die Menge der Attributschlüssel, die weggelassen werden sollen. Dies ist nützlicher, wenn wir nur bestimmte Eigenschaften vom Objekt entfernen und andere beibehalten möchten. 🎜rrreee🎜🎜3. Partial<Type>🎜🎜🎜Partial erstellt einen Typ, bei dem alle seine Typattribute auf optional gesetzt sind. Dies kann sehr nützlich sein, wenn wir Aktualisierungslogik für ein Objekt schreiben. 🎜rrreee🎜🎜4. Erforderlich<Typ>🎜🎜🎜Erforderlich ist das Gegenteil von Teilweise. Es erstellt einen Typ, bei dem alle Eigenschaften erforderlich sind. Damit kann sichergestellt werden, dass in einem Typ keine optionalen Eigenschaften vorhanden sind. 🎜rrreee🎜🎜5. Readonly<Type>🎜🎜🎜Readonly Konstruiert einen Typ, in dem alle Eigenschaften des Typs auf schreibgeschützt gesetzt sind. Die Neuzuweisung eines neuen Wertes TS führt zu einem Fehler. 🎜rrreee🎜🎜6. ReturnType<Type>🎜🎜🎜ReturnType Konstruiert einen Typ aus dem Rückgabetyp eines Funktionstyps. Dies ist sehr nützlich, wenn wir mit Funktionstypen aus externen Bibliotheken arbeiten und darauf basierend benutzerdefinierte Typen erstellen möchten. 🎜rrreee🎜Zusätzlich zu den oben genannten gibt es noch andere Dienstprogrammtypen, die uns helfen können, saubereren Code zu schreiben. Einen Link zur TypeScript-Dokumentation zu Dienstprogrammtypen finden Sie hier. 🎜🎜🎜https://www.typescriptlang.org/docs/handbook/utility-types.html🎜🎜🎜Utility-Typen sind eine sehr nützliche Funktion von TypeScript. Entwickler sollten sie nutzen, um Hardcoding-Typen zu vermeiden. Sehen Sie besser aus als Ihre Kollegen? Das müssen Sie wissen! 🎜🎜🎜Dieser Artikel ist abgedruckt unter: https://segmentfault.com/a/1190000040574488🎜🎜🎜Weitere Kenntnisse zum Thema Programmierung finden Sie unter: 🎜Einführung in die Programmierung🎜! ! 🎜

Das obige ist der detaillierte Inhalt vonEine kurze Diskussion über 7 wissenswerte Methoden in TypeScript. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Lösen generische Funktionen das Problem der variadischen Parametertypen in Golang? Lösen generische Funktionen das Problem der variadischen Parametertypen in Golang? Apr 16, 2024 pm 06:12 PM

Generische Funktionen in Go lösen das Problem variadischer Typen: Generische Funktionen ermöglichen die Angabe von Typparametern zur Laufzeit. Dadurch ist es möglich, Funktionen zu schreiben, die Parameter unterschiedlichen Typs verarbeiten können. Beispielsweise ist die Max-Funktion eine generische Funktion, die zwei vergleichbare Parameter akzeptiert und den größeren Wert zurückgibt. Durch die Verwendung generischer Funktionen können wir flexibleren und allgemeineren Code schreiben, der verschiedene Parametertypen verarbeiten kann.

Spezifische Anwendungsszenarien von Generika in Golang Spezifische Anwendungsszenarien von Generika in Golang May 04, 2024 am 11:45 AM

Anwendungsszenarien von Generika in Go: Erfassungsvorgänge: Erstellen Sie Erfassungsvorgänge, die für jeden Typ geeignet sind, z. B. zum Filtern. Datenstrukturen: Schreiben Sie allgemeine Datenstrukturen wie Warteschlangen, Stapel und Karten, um verschiedene Datentypen zu speichern und zu bearbeiten. Algorithmen: Schreiben Sie allgemeine Algorithmen wie Sortieren, Suchen und Reduzieren, die verschiedene Datentypen verarbeiten können.

Was sind die Ober- und Untergrenzen von Java-Funktionsgenerika? wie benutzt man? Was sind die Ober- und Untergrenzen von Java-Funktionsgenerika? wie benutzt man? Apr 26, 2024 am 11:45 AM

Generische Java-Funktionen ermöglichen das Festlegen von Ober- und Untergrenzen. Extends gibt an, dass der von einer Funktion akzeptierte oder zurückgegebene Datentyp ein Untertyp des angegebenen Typs sein muss, z. B. Die untere Grenze (super) gibt an, dass der von einer Funktion akzeptierte oder zurückgegebene Datentyp ein Supertyp des angegebenen Typs sein muss, z. B. Die Verwendung von Generika verbessert die Wiederverwendbarkeit und Sicherheit des Codes.

Welchen Einfluss haben Golang-Generika auf Funktionssignaturen und Parameter? Welchen Einfluss haben Golang-Generika auf Funktionssignaturen und Parameter? Apr 17, 2024 am 08:39 AM

Zu den Auswirkungen von Generika auf Go-Funktionssignaturen und -Parameter gehören: Typparameter: Funktionssignaturen können Typparameter enthalten, die die Typen angeben, die die Funktion verwenden kann. Typeinschränkungen: Typparameter können Einschränkungen haben, die Bedingungen angeben, die sie erfüllen müssen. Parametertyp-Inferenz: Der Compiler kann auf den Typ nicht spezifizierter Typparameter schließen. Angeben von Typen: Parametertypen können explizit angegeben werden, um generische Funktionen aufzurufen. Dies erhöht die Wiederverwendbarkeit und Flexibilität des Codes und ermöglicht Ihnen das Schreiben von Funktionen und Typen, die mit mehreren Typen verwendet werden können.

Welche Einschränkungen gibt es bei generischen Funktionen in Golang? Welche Einschränkungen gibt es bei generischen Funktionen in Golang? Apr 16, 2024 pm 05:12 PM

Einschränkungen der generischen Go-Funktionen: Es werden nur Typparameter unterstützt, Wertparameter werden nicht unterstützt. Funktionsrekursion wird nicht unterstützt. Typparameter können nicht explizit angegeben werden, sie werden vom Compiler abgeleitet.

Wie funktionieren Java-Enum-Typen mit Generika? Wie funktionieren Java-Enum-Typen mit Generika? May 04, 2024 am 08:36 AM

Die Kombination von Aufzählungstypen und Generika in Java: Wenn Sie eine Aufzählung mit Generika deklarieren, müssen Sie spitze Klammern hinzufügen, und T ist der Typparameter. Wenn Sie eine generische Klasse erstellen, müssen Sie auch spitze Klammern hinzufügen. T ist ein Typparameter, der jeden Typ speichern kann. Diese Kombination verbessert die Codeflexibilität, die Typsicherheit und vereinfacht den Code.

Können Golang-Variablenparameter in generischen Funktionen verwendet werden? Können Golang-Variablenparameter in generischen Funktionen verwendet werden? Apr 29, 2024 pm 02:06 PM

In Go können variadische Parameter für generische Funktionen verwendet werden, wodurch generische Funktionen erstellt werden können, die eine variable Anzahl von Parametern akzeptieren und für mehrere Typen geeignet sind. Sie können beispielsweise eine generische Funktion Mode erstellen, die das häufigste Element in einer bestimmten Liste findet: Mode akzeptiert eine variable Anzahl von Elementen vom Typ T. Es zählt Elemente, indem es Zählungen für jedes Element erstellt. Dann findet es das Element, das am häufigsten vorkommt, und gibt es als Modus zurück. In der Hauptfunktion können Sie die Funktion „Mode“ für die Liste der Zeichenfolgen und die Liste der Ganzzahlen aufrufen, die jeweils die Zeichenfolge und die Zahl mit den meisten Vorkommen zurückgibt.

Wie führt die generische Java-Methode eine Typinferenz durch? Wie führt die generische Java-Methode eine Typinferenz durch? May 01, 2024 pm 02:45 PM

Generische Java-Methoden leiten automatisch Typparameter ab, ohne sie explizit zu deklarieren. Zu den Regeln gehören: 1. explizite Typdeklarationen verwenden; 2. einen einzelnen Typ ableiten; 4. Konstruktor-Rückgabewerttypen ableiten; Dies vereinfacht den Code und erleichtert das Schreiben und Verwenden generischer Methoden.

See all articles