2017-02-22 2 views
1

Da DateienWie man eine Variable zu einem Modul in Typescript eingibt?

Pfad \ Example.ts:

export module Example { 
    ... Stuff ... 
} 

und Test.ts:

import { Example } from "Path/Example"; 

let exampleMock = getExampleMock(); // getExampleMock returns an any that matches the type structure of Example 

let e = exampleMock as Example; // Errors: Cannot find name 'Example' 
let local = Example; // local is typed as Example; 
local = exampleMock ; // since exampleMock is an any, compiler allows this call. 

... use local with full typing of Example module 

Gibt es eine Möglichkeit, eine Variable zu einem Modul zu geben, ohne es zu der Einstellung, Echtes Modul zuerst?

+0

halbbezogene Versuchen: ich wirklich weg würde vorschlagen, aus „interner Module“, wenn möglich zu bewegen. Laut deinem Code verwendest du bereits echte Module, also denke ich, dass es für dich möglich sein sollte ... –

+0

@st_huck, meinst du, wie mein Test.ts-Code nicht in ein Modul eingebunden ist? Mein Example.ts exportiert das Modul, so dass ein externes Modul korrekt wäre? – Daryl

+0

Ich meinte, ich habe nicht verstanden, warum Sie das Schlüsselwort 'module' in Ihrer Example.ts verwenden. Vielleicht ist es beabsichtigt, wollte nur kommentieren, wenn es nicht ist. Ihr example.ts wird zwar als externes Modul betrachtet, aber es exportiert ein internes Modul. Sie haben keinen Grund, ein internes Modul zu verwenden, da alle Ihre lokalen Variablen in example.ts weiterhin privat für die Datei sind, da es sich um ein externes Modul handelt. Vielleicht bin ich derjenige, der hier etwas vermisst? warum nicht einfach 'export const Example = {...}'? –

Antwort

3

let exampleMock = getExampleMock() as typeof Example; 
Verwandte Themen