タイプ保護(Type Guard)
5842 ワード
タイプ保護(Type Guard)
タイプ範囲を特定のタイプで縮小(フィルタ)するプロセス
説明に使用する辞書の例
interface Developer{
name: string;
skill: string;
}
interface Person {
name: string;
age: number;
}
function introduce(): Developer | Person{
return {name: 'Tony', age: 33, skill:"Iron Making"}
}
let tony = introduce();
console.log(tony.skill); // 유니온 특징에 의해 접근 불가
// 타입 단언을 사용하여 접근
if((tony as Developer).skill){
let skill = (tony as Developer).skill;
console.log(skill);
} else if(tony as Person).age){
let age = (tony as Developer).age;
console.log(age);
}
interface Developer{
name: string;
skill: string;
}
interface Person {
name: string;
age: number;
}
function introduce(): Developer | Person{
return {name: 'Tony', age: 33, skill:"Iron Making"}
}
let tony = introduce();
console.log(tony.skill); // 유니온 특징에 의해 접근 불가
// 타입 단언을 사용하여 접근
if((tony as Developer).skill){
let skill = (tony as Developer).skill;
console.log(skill);
} else if(tony as Person).age){
let age = (tony as Developer).age;
console.log(age);
}
タイプガードを使うと
is
キーワード使用function isDeveloper(target: Developer | Person): target is Developer {
return (target as Developer).skill !== undefined; // target이 skill 이라는 것이 있을 경우, Developer 취급 한다.
}
if(isDeveloper(tony)){
tony.skill
} else{
tony.age
}
リファレンス
Reference
この問題について(タイプ保護(Type Guard)), 我々は、より多くの情報をここで見つけました https://velog.io/@hoho_0815/타입-가드Type-Guardテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol