2016-08-09 99 views
3

nicht finden Ich kann keine klare Antwort auf diese trotz ähnlicher Fragen finden.TSLint kann benutzerdefinierte Modul mit benutzerdefinierten D.ts-Datei

Ich versuche, das suncalc-Modul mit TypeScript zu verwenden. Es muss nicht eine eigene Eingabe-Datei ist, damit ich ein erstellt und platziert es in meinem Typisierungen Ordner unter suncalc/suncalc.d.ts

An der Spitze meiner Datei habe ich folgendes:

/// <reference path="../typings/suncalc/suncalc.d.ts" /> 
"use strict"; 

import * as moment from "moment"; 
import {SunTimes} from "suncalc"; 
import SunCalc = require("suncalc"); 

Der Code funktioniert gut und läuft und Wallaby kann alles wunderbar erkennen. TSLint (eigentlich der TypeScript-Compiler) in WebStorm meldet jedoch, dass das Modul 'suncalc' nicht gefunden werden kann.

Ich habe versucht, mit meinem tslint.json und typings.json sowie tsd.json zu spielen, aber ich kann nicht scheinen, sie zu bekommen, um den Fehler zu entfernen.

Darüber hinaus, wenn es in Zusammenhang steht, wenn ich schlucke es berichtet, dass es chai oder it oder describe nicht finden kann, obwohl WebStorm, TSLint kein Problem mit ihnen hat.

Ich möchte wirklich die kleine rote Squiggly Linie unter dem Wort 'suncalc' in meinem Projekt loswerden.

+2

Ich wollte nur erwähnen, dass der Fehler Sie sehen, ist tatsächlich ein Fehler aus dem Typoskript Compiler und nicht von TSLint. – JKillian

Antwort

1

Apparently Sie müssen explizit mit Ambient-Modulen sein. Das Problem lag in meiner d.ts-Dateisyntax.

Sie müssen das Modul nicht nur dann Namespace definieren und sicherstellen, dass der Modulname in "" eingeschlossen ist. Ich In meinem Fall benötigen

declare module "suncalc" { } 

statt

declare namespace suncalc { }