2016-06-07 9 views
6

Typoskript gab mir einen Compiler-Fehler, dass ich nicht wusste, wie wenn zu beheben versuchen, eine Komponente I definiert Reagieren zu verwenden:Wie importiert man externe Bibliothek und wirft sie in Typoskript auf <any>?

import App = require('./components/views/app/app'); 

Dieser Fehler ging weg, als ich das Importmodul als <any> verwendet:

import App = require('./components/views/app/app'); 
const App2 = App as any; 

Gibt es eine Möglichkeit, dies in einer Zeile zu tun, so?

import App = require('./components/views/app/app') as <any>; 

Es wäre eine gute Möglichkeit, JavaScript zu importieren Dateien zu, ohne diese zu tun zu haben:

declare module 'react-router' { 
    const x: any; 
    export = x; 
} 
+0

@Blackus Antwort ist der Weg zu gehen, aber Vorsicht, wenn sie 'any' Gießen Sie ** Opt-out ** Tipp (und was ist dann der Punkt Typoskript der Verwendung?) –

+0

@BrunoGrieder Sure , wenn typen für die lib verfügbar sind, besser, sie zu benutzen! – Blackus

+0

Absolut. Aber oft stoße ich auf Syntaxfehler, die ich nicht beheben kann, wo es keine öffentlichen Typings gibt (wie react-css-modules). Dann brauchst du . ZB: http://stackoverflow.com/questions/37675920/jsx-element-type-does-not-have-any-construct-or-call-signatures – Richard

Antwort

7

Für die Komponenten, die Sie festgelegt haben, es hängt davon ab, wie Sie sie exportieren, aber Sie kann import Anweisung verwenden.

Zum Beispiel die exportierte Komponente

export class FooComponent extends React.Component<any, any> { 
} 

Und der Import

import {FooComponent} from './foo-component.ts'; 

Für die Frage auf den Titel „Wie externe Bibliothek importieren und auf jeden beliebigen werfen“, können Sie einfach require auf einer Variablen.

const myLib: any = require('myLib'); 
Verwandte Themen