2016-12-16 1 views
0

Ich suche nach einer übersichtlichen Möglichkeit, einen Import aus einer Deklaration zu erweitern.Erweitern eines Kurzhand-Umgebungsmodul-Imports in Typescript

habe ich versucht, die folgende, bekam aber einen Fehler von: error TS2507: Type 'any' is not a constructor function type. Beispiel-Code ist unten:

base.d.ts

declare module 'base'; 

derived.ts

import * as Base from 'base'; 

class Derived extends Base { // error TS2507: Type 'any' is not a constructor function type. 
} 

Antwort

1

Shorthand Ambient-Module eignen sich nur für Werte, nicht für Typen.

nicht kompiliert diese nicht zu, und ich glaube nicht, dass es eine Überraschung:

import * as Base from 'base'; 

interface X { 
    foo: Base.Foo;//error TS2694: Namespace ''base'' has no exported member 'Foo' 
} 


function f(s: string) {} 

f(Base.Foo); // note: no error here, for the same Base.Foo 

Stenografie Module wurden als eine Möglichkeit eingeführt zu sagen, dass „alles, was im Inneren hat any Typ“. Es gibt kein Analogon von any für Klassen und Typen - Sie können keine Klasse erweitern, ohne eine vollständige Deklaration dafür zu haben.

+0

Ja, ich musste dies tun: 'deklarieren Modul 'Basis' { Schnittstelle Konstruktor { neu (... args: any []): this; } const _: Konstruktor; export = _; } ' –

Verwandte Themen