Ich bin neu in ES6 und TypeScript. Wir haben einen Teil unseres Codes auf ES6 umgestaltet, aber wir probieren aus, ob es nicht besser wäre, stattdessen auf TypeScript umzusteigen, um leichter wartbaren Code zu schreiben.Typ des exportierten Objekts, das in TypeScript nicht erkannt wird
Wenn die folgende haben, vereinfachte ES6 Modul config.js
export default {
logger: require('winston'),
somethingelse: 'text'
}
ich importieren dieses Modul überall in meinem Projekt, wie in app.js
:
import * as config from '../../../../config'
const logger = config.logger
...
Soweit ich verstehe, Typisierung ist optional in TypeScript und ES6 Code sollte nur gut laufen, wenn ich nur die Dateien von .js
zu .ts
umbenennen. Bitte korrigieren Sie mich, wenn das eine falsche Annahme war, die ich hatte. Ich erhalte jedoch diesen Fehler, wenn ich kompilieren:
/project/app.ts(7,23): Property 'logger' does not exist on type 'typeof \"/project/config\"'.
Das heißt also, ich haben eine Art zu erklären? Also ging ich weiter und erklärte eine Schnittstelle für das exportierte Objekt.
config.js
:
interface IConfig {
logger: any;
somethingelse: string;
}
const defaultConfig: IConfig = {
logger: winston,
text: 'text'
}
export default defaultConfig
Aber ich bin immer noch die obige Zusammenstellung Fehler.