2016-08-09 143 views
3

儘管有類似的問題,但我無法找到明確的答案。TSLint找不到自定義d.ts文件的自定義模塊

我試圖在TypeScript中使用suncalc模塊。它沒有它自己的打字文件,所以我創建了一個並把它放在我的分型文件夾suncalc/suncalc.d.ts

下,在我的文件的頂部,我有以下幾點:

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

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

的代碼工作正常,並運行而wallaby能夠很好地檢測到所有的東西。但是,WebStorm中的TSLint(實際上是TypeScript編譯器)報告無法找到模塊'suncalc'。

我嘗試玩我的tslint.jsontypings.json以及tsd.json但我似乎無法讓他們刪除錯誤。

此外,如果它是相關的,當我運行吞噬它報告它找不到chaiitdescribe雖然WebStorm,TSLint沒有與他們的問題。

我真的很想在我的項目中擺脫「suncalc」這個詞下面的紅色小波浪線。

+2

只是想提一提,你看到的錯誤實際上是從打字稿編譯器錯誤,而不是從TSLint。 – JKillian

回答

1

Apparently您需要明確使用環境模塊。 問題出在我的d.ts文件語法中。

您需要定義模塊不只是名稱空間,並確保模塊名稱包裝在「」中。 在我來說,我需要

declare module "suncalc" { } 

,而不是

declare namespace suncalc { }