タイプスクリプトの型を知っていなければなりません
13072 ワード
導入
タイプは私たちが最初の場所でtypescriptを使用する理由の1つの理由です、そして、私たちが利益を得ることができるそれらの多くがあります.フロントエンドの開発者が反応して専門家として、すべての種類をシームレスに動作するように利用するトリックがあります.これらのヒントやトリックでは、TypesScriptの代わりに負担を運ぶために負担されます.
型エイリアス
を定義するいくつかの方法があります
Type
以下では// Defining a type
type Person = {
age?: number; // Optional property
name: string;
id: ID;
};
// Defining union type
type ID = number | string;
// Combining types
type Person = {
age: number;
name: string;
id: ID;
};
type Car = {
color: string;
year: number;
};
type CarAndPersonCombined = Person & Car;
オブジェクトタイプ
型が複雑でなくて、書くのが簡単であるならば、我々は単純に:
// Directly inside parameter
const foo = (id: { id: string | number }, car: { color: string; year: number }) => {};
レコードタイプ
エー
Record<K, T>
プロパティキーがkで、そのプロパティ値がTであるオブジェクト型です.したがって、レコードキーの型を確認します.もちろん、プロパティの型は予期しないものではありません.const colorMap: Record<string, { color: string; hover: string }> = {
nextjs: { color: '#0A7B83E2', hover: '#09686dE2' },
javascript: { color: '#F5B50FE2', hover: '#d69e0cE2' },
};
上の例では、キーは常にstring
, color
and hover
プロパティは文字列になります.我々が彼らを供給しようとするならばnumber
, 以下のエラーが表示されます.const colorMap: Record<string, { color: string; hover: string }> = {
nextjs: { color: 1234, hover: 1245 }, // Type 'number' is not assignable to type 'string'.ts
javascript: { color: '#F5B50FE2', hover: '#d69e0cE2' },
};
だから我々はキーとプロパティの種類を完全に制御を目指している場合Record
'sは行く方法です.省略する
あなたがすでにタイプがあるならば、若干の特性を削除したいです?
Omit
これを行うことができます.type Person = {
name: string;
age: number;
salary: number;
};
type PersonWithoutSalary = Omit<Person, 'salary', 'age'>;
const personObj: PersonWithoutSalary = {
name: 'Foo',
};
削除しましたsalary
and age
からPerson
今私たちが持っているすべてのタイプname
.ピックタイプ
だからあなたは
Pick
あなたが持っていないものを省略する代わりにプロパティ?type Person = {
name: string;
age: number;
salary: number;
};
type PersonWithoutSalary = Pick<Person, 'salary'>;
const personObj: PersonWithoutSalary = {
salary: 10000,
age: 19, // Type '{ age: number; }' is not assignable to type 'Pick<Person, "salary">'
};
含まれていないプロパティを使用しようとするとPick
, TypeScriptはエラーをスローします.ユニオンタイプ
type TodoProps = {
id: string;
desc: string;
state: StateTypes;
};
type StateTypes = 'Active' | 'All' | 'Completed';
to do do stateは、Union
種類あなたが必要なすべての条件のリストのうち、1つは、次に利用するUnion
. そうすることで我々は他のオプションを制限し、IntelliSenseの仕事を我々の好意にする.
タイプタイプ
新しいタイプを作成するのがとても怠惰であるならば、あなたはすでにあなたのタイプをマップする目的を持っています:
const Person = {
name: 'John',
age: '20',
};
type PersonType = typeof Person;
const newPersonObj: PersonType = {
name: 'Smith',
age: '21',
};
読書ありがとう🥳🥳🥳.Reference
この問題について(タイプスクリプトの型を知っていなければなりません), 我々は、より多くの情報をここで見つけました https://dev.to/ogzhanolguncu/must-know-types-in-typescript-ljoテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol