TypeScriptの型に関して復習を兼ねて学びなおしている
最初は基本的な型とかについて
身近な例をTypeScriptの方で表現することでTypeScriptの方の表現力の高さを再認識する意味合いでも蓮爾を例にしている
code: typescript
// Literal Types
type Amount = 'nashi' | 'sukuname' | 'futsu' | 'mashi' | 'mashimashi';
// 基本的なinterface定義
interface Topping {
yasai: Amount;
ninniku?: Amount;
abura?: Amount;
karame?: Amount;
}
// 必須Propertyのみを抜き出したinterface定義
interface DefaultTopping {
yasai: Amount;
}
// Optional Propertyのみを抜き出したinterface定義
interface OptionalTopping {
ninniku?: Amount;
abura?: Amount;
karame?: Amount;
}
// 交差型
type ToppingWithType = DefaultTopping & OptionalTopping;
// interfaceの継承
interface LimitedTimeTopping extends Topping {
tapioka?: Amount;
}
自分のエディタのconfigにこれを追加する必要がある(何やっているんだろう自分と思いながら)
code:json
{
"cSpell.words": [
"abura",
"futsu",
"karame",
"mashi",
"mashimashi",
"nashi",
"ninniku",
"sukuname",
"tapioka",
"yasai"
]
}