🌈 本当のタイプのスクリプトの始まり!Union Type
11653 ワード
テキストの種類
✔朕Teral Types例1
type Name = 'name';
let aprilName: Name;
aprilName = 'name';
✔️Literal Type例2
function printText(s: string, alignment: "left" | "right" | "center") {
// ...
}
printText("Hello world", "left");
printText("G'day mate", "centre"); // 이럴 경우 에러남.
// 두번째 인자에는 세가지의 문자열 중 하나만 입력할 수 있기 때문에!!
🌈 Union Types
|
演算子を使用して複数のタイプを接続納得できる因子を決める?!
유니온 타입(Union Type)
はい?JavaScriptのOR演算子(|)など、「A」または「B」を表すタイプ.✔Union Type例1
パラメータを選択すると、上図のようにパラメータの選択を求められます.
許容できる因子を決める.
type Direction = 'left' | 'right' | 'up' | 'down';
function move(direction: Direction) {
console.log(direction);
}
move('down');
type TileSize = 8 | 16 | 32;
const tile: TileSize = 16;
✔️ユニオンタイプ例2
関数のパラメータ
id
は、number
タイプであってもよいし、string
タイプであってもよい.これが
|
演算子を使用して複数のタイプを接続する方法です.function printId(id: number | string) {
if (typeof id === "string") {
console.log(id.toUpperCase());
} else {
console.log(id);
}
}
✔Union Type例3
// function: login -> success or fail ⏱
type SuccessState = {
response: {
body: string;
};
};
type FailState = {
reason: string;
};
type LoginState = SuccessState | FailState;
function login(id: string, password: string): LoginState {
return {
response: {
body: 'logged in!',
},
};
}
Intersection Types: & ✨
ユニオンタイプとは逆のタイプ?
Intersection type
って何?✔勘定科目タイプの例
&
演算子を使用して複数のタイプ定義を結合します.type Student = {
name: string;
score: number;
};
type Worker = {
empolyeeId: number;
work: () => void;
};
function internWork(person: Student & Worker) {
console.log(person.name, person.empolyeeId, person.work());
}
internWork({
name: 'april',
score: 1,
empolyeeId: 123,
work: () => {},
});
Reference
この問題について(🌈 本当のタイプのスクリプトの始まり!Union Type), 我々は、より多くの情報をここで見つけました https://velog.io/@april_5/진정한-타입스크립트의-시작-Union-Typeテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol