5役に立つタイプスクリプトトリック
8452 ワード
type check functionを作成する
interface IDog{
name: string;
age: number;
kidFriendly: boolean;
}
interface ICat{
name: string;
age: number;
activityLevel: number;
}
type Animal = IDog | ICat;
/** Is the animal a dog ? */
const isDog = (animal: Animal) : animal is IDog => (animal as IDog).kidFriendly !== undefined;
if(isDog(animal)){
console.log(animal.kidFriendly);
}
詳細はこちらCustom Type Guards in TypeScript
Basile Bong ・ Sep 26 '20 ・ 2 min read
#webdev
#javascript
#typescript
2 .インタフェースのすべてのプロパティをオプションに設定する
interface IDog{
name: string;
age: number;
kidFriendly: boolean;
}
const dog : Partial<IDog> = {
name: "Rex"
}
3 .関数のパラメータの型を取得する
const walkDog = (dogName: string, distance: number) => { /** ... */ }
const params: Parameters<typeof walkDog> = ["Rex", 48];
setterとgettersの使用
セッターとゲッターもプレーンJavaScriptに存在します.それでも、それらはtypescript (および他の言語)で非常に役に立ちます.
class Dog{
private _name: string = "";
get name(): string{
return this._name;
}
/** Check the length of the name before setting it **/
set name(newName: string){
if(newName.length < 8) {
throw new Error(`The dog's name needs at least 8 charachters`)
}
this._name = newName;
}
}
オプションの連鎖
オプションの連鎖は最近Javascriptに追加されました.
let cat?: ICat;
/** With optional chaining **/
let animal = cat?.fur.length;
/** Without optional chaining **/
let cat = cat === null || cat === undefined ? undefined : car.fur.length;
Reference
この問題について(5役に立つタイプスクリプトトリック), 我々は、より多くの情報をここで見つけました https://dev.to/basilebong/5-useful-typescript-tricks-419iテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol