2016-08-09 108 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 { }