TSにおけるインターフェイスと型の違い

TypeScriptではinterfaceとtypeのどちらもカスタム型を定義するために使われます。いくつかの類似点がある一方で、相違点もあります。

  1. インターフェイス
  2. インターフェース
  3. 日本語でネイティブに言い換えてください。選択肢は1つだけでかまいません。
  4. 現地情報の収集
// interface 的定义方式
interface Person {
name: string;
age: number;
}
// type 的定义方式
type Person = {
name: string;
age: number;
}
  1. インターフェイス
  2. 実は、彼はほとんど英語を話せません。
// interface 的合并声明
interface Person {
name: string;
}
interface Person {
age: number;
}
// type 的合并声明会报错
type Person = {
name: string;
}
type Person = {
age: number;
}
  1. インタフェース
  2. 母語話者として自然な日本語で文章を言い換えて下さい。選択肢は1つだけで結構です:
// interface 的实现和继承
interface Animal {
name: string;
eat(): void;
}
class Dog implements Animal {
name: string;
eat(): void {
console.log('Dog is eating.');
}
}
// interface 的继承
interface Person {
name: string;
age: number;
}
interface Employee extends Person {
position: string;
}
// type 不能实现和继承
  1. インターフェース
  2. この後、ここはどうなってしまう?
// interface 的交叉类型
interface A {
name: string;
}
interface B {
age: number;
}
type AB = A & B;
// type 不支持交叉类型

インターフェースはオブジェクトの構造を定義し、クラスによって実装され他のインターフェースによって継承されて交差点型を定義できます。型はより強力な型の操作機能(共用型、交差点型、型エイリアスなど)を提供しますが、クラスの実装とインターフェースの継承はサポートしていません。ほとんどの場合、具体的なニーズに応じてインターフェースを使用するか型を使用するかを選択できます。

bannerAds