die folgende Node.js Projektstruktur Betrachtet:erstellen Typoskript Schnittstelle für bestehende Node.js Modul für VS-Code IntelliSense
- entities
- customer.js
- node_modules
- typings
- index.js
- jsconfig.json
- package.json
Wenn ein entities/customer.js
wie folgt mit:
function Customer() {
this.firstname = null;
this.lastname = null;
this.orders = []
}
Customer.prototype.addOrder = function (order) {
this.orders.push(order);
};)
module.exports = Customer
In ./index.js
, entities/customer.js
wird verwendet:
let Customer = require('./entities/customer');
let customer = new Customer();
customer.firstname = "John";
customer.lastname = "Doe";
customer.addOrder({ amount: 5, product : 'Apple' })
Wie würde ich nur erklären ein TypeScript interface
zur Unterstützung von VS Code IntelliSense, um nicht nur addOrder(param: any): void
anzuzeigen und wo würde ich alles an seinen Platz setzen? Ich möchte keine TypScript-Implementierung haben, die das aktuelle Modul Customer
ersetzt.
/**
* @param {{amount: number, product: string}} order
*/
Aber ich bin interessiert an der Typoskript Version für das Verständnis:
Natürlich könnte ich JSDoc Kommentare (dank Salsa Sprachendienst in VS-Code) verwenden. Als Bonus möchte ich order
vom Typ Order
sein.
Danke, aber das erklärt eine Implementierung, die ich nicht will. Und die Reihenfolge ist immer noch von Typ any. –