TS declareとの違いinterface:
宣言:
declare class Example {
public Method(): void;
}
上記のコードdeclareでは、クラスExampleが宣言されているどこかでTSコンパイラに通知します。これは、クラスが魔法のように含まれているという意味ではありません。プログラマとしてのあなたは、(declareキーワードで)宣言するときにクラスを利用可能にする責任があります。
インターフェース:
interface Example {
Method(): void;
}
アンはinterface唯一typescriptです内に存在する仮想構成です。typescriptコンパイラは、型チェックの唯一の目的でそれを使用します。コードがJavaScriptにコンパイルされると、この構造全体が取り除かれます。typescriptコンパイラは、オブジェクトが正しい構造を持っているかどうかをチェックするためにインターフェースを使用します。
たとえば、次のインターフェイスがあるとします。
interface test {
foo: number,
bar: string,
}
このインターフェイスタイプを持つオブジェクトを定義すると、インターフェイスと完全に一致する必要があります。
// perfect match has all the properties with the right types, TS compiler will not complain.
const obj1: test = {
foo: 5,
bar: 'hey',
}