Type Script初心-高級タイプ
1290 ワード
結合タイプ
結合タイプは、1つの値が時間集中型の1つを表し、
結合型の変数は、与えられた値において、類型推論の規則に基づいて、一つのタイプを推論します.
連合型の変数は、タイプが推測されると、通常宣言の変数と同じになります.
クロスタイプは、複数のタイプを1つのタイプに統合することであり、クロスタイプの変数はすべてのタイプの属性、方法を有し、
結合タイプは、1つの値が時間集中型の1つを表し、
|
を使用して各種類の行を分離する.結合型の変数は、与えられた値において、類型推論の規則に基づいて、一つのタイプを推論します.
連合型の変数は、タイプが推測されると、通常宣言の変数と同じになります.
let ddd: string | number;
ddd = 'hello world';
// ddd string, length
console.log(ddd.length);
ddd = 255;
// ddd number, length
console.log(ddd.length);
タイプの変数が推定されていない場合、この変数は、結合タイプのすべてのタイプの共有属性にのみアクセスできます.function func(name: string, age: string | number) {
// Error,Property 'length' does not exist on type 'string | number'.Property 'length' does not exist on type 'number'.
console.log(age.length);
//
console.log(age.toString());
}
クロスタイプクロスタイプは、複数のタイプを1つのタイプに統合することであり、クロスタイプの変数はすべてのタイプの属性、方法を有し、
&
を使用してタイプを統合する.function extend(first: T, second: U): T & U {
const result = {};
for (let id in first) {
(result)[id] = first[id];
}
for (let id in second) {
if (!result.hasOwnProperty(id)) {
(result)[id] = second[id];
}
}
return result;
}
const x = extend({ a: 'hello' }, { b: 42 });
// x a b
const a = x.a;
const b = x.b;