TSdeclare
との違い:interface
宣言する:
declare class Example {
public Method(): void;
}
上記のコードdeclare
で、TSコンパイラはクラスExample
がどこかで宣言されていることを認識します。これは、クラスが魔法のように含まれていることを意味するものではありません。declare
プログラマーとしてのあなたは、(キーワードを使用して)宣言するときにクラスを使用可能にする責任があります。
インターフェース:
interface Example {
Method(): void;
}
Aninterface
は、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',
}