Ich lerne wie man OOP mit JavaScript macht . Verfügt es über ein Schnittstellenkonzept (wie das von Java interface
) ?
Ich könnte also einen Hörer erstellen...
Ich lerne wie man OOP mit JavaScript macht . Verfügt es über ein Schnittstellenkonzept (wie das von Java interface
) ?
Ich könnte also einen Hörer erstellen...
Abstrakte Schnittstelle wie diese
const MyInterface = {
serialize: () => {throw "must implement serialize for MyInterface types"},
print: () => console.log(this.serialize())
}
eine Instanz erstellen:
function MyType() {
this.serialize = () => "serialized "
}
MyType.prototype = MyInterface
und verwenden Sie es
let x = new MyType()
x.print()
In Java braucht man Schnittstellen, da es statisch typisiert ist und der Vertrag zwischen Klassen während der Kompilierung bekannt sein sollte. In JavaScript ist das anders. JavaScript ist dynamisch typisiert, d. h., wenn Sie das Objekt erhalten, können Sie einfach prüfen, ob es eine bestimmte Methode hat, und diese aufrufen.
Wenn Sie einen Transcompiler verwenden möchten, können Sie TypeScript ausprobieren. Es unterstützt den Entwurf der ECMA-Funktionen (im Vorschlag werden Schnittstellen als " Protokolle "), ähnlich wie es Sprachen wie coffeescript oder babel tun.
In TypeScript kann Ihre Schnittstelle wie folgt aussehen:
interface IMyInterface {
id: number; // TypeScript types are lowercase
name: string;
callback: (key: string; value: any; array: string[]) => void;
type: "test" | "notATest"; // so called "union type"
}
Was Sie nicht tun können:
Versuchen Sie dies: Beschreiben Sie die Schnittstelle als Klasse und verwenden Sie @implements
JSDoc, um zu zeigen, dass eine bestimmte Klasse die definierte Schnittstelle implementiert. Sie sehen rote, verschnörkelte Linien am Klassennamen, wenn die Klasse einige Eigenschaften nicht implementiert. Ich habe mit VSCode getestet.
// @ts-check
// describe interface using a class
class PlainInterface {
size = 4;
describe() {}
show(){ }
}
/**
* @implements PlainInterface
*/
class ConcretePlain {
size = 4;
describe() {
console.log('I am described')
}
show(){
console.log('I am shown')
}
}
const conc = new ConcretePlain();
conc.describe();
Es gibt keine nativen Schnittstellen in JavaScript, Es gibt mehrere Möglichkeiten, eine Schnittstelle zu simulieren. Ich habe ein Paket geschrieben, das dies tut
Sie können die Implantation sehen aquí
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.