2021-07-05
よく出てきそうな話題なのでメモ。
公式のドキュメントにあった。
https://www.typescriptlang.org/docs/handbook/2/everyday-types.html#differences-between-type-aliases-and-interfaces
Type aliases and interfaces are very similar, and in many cases you can choose between them freely.
ほとんど同じで、多くのケースでは自由に選んでいいよ、だってさ〜。
If you would like a heuristic, use interface until you need to use features from type.
判断基準がほしいなら type
の必要があるまで interface
使ってね、とのことなので私は interface
を使っていこうと思います。
よくまとまっていたのでメモ。
typeとinterfaceって結局どう使い分ければ良いの?
どっちを使うべきかの判断基準も書かれていたけど、多くの場合はどちらでも良い、みたいな傾向になるかな〜。
ライブラリとかを作る場合は interface
を使うことを基準に考えたほうが良いかも、と思った。
「豆知識: 型定義を分かりやすくするPrettify」にあった以下の Tips は便利そう。
(ただ、これを使わなくても、TypeScript 側でより分かりやすく見せてくれると良いのにな、とは思った)
type Prettify<T> = {
[K in keyof T]: T[K];
} & {};
type Name = {
name: string;
};
type Age = {
age: number;
}
type User = Name & Age
type PrettifiedUser = Prettify<User>
// type PrettifiedUser = {
// name: string;
// age: number
// }