VS 2013中的Typescript错误

时间:2015-12-21 17:53:08

标签: angularjs visual-studio-2013 typescript

我在Visual Studio 2013中使用TypeScript。我使用npm安装tsd,然后使用tsd命令下载类型定义。我在输入时得到intellisense但是在输入一行之后我得到了红色波浪形和一个“无法找到符号x”的错误(用ng替换x,角度等)。我可以控制 - 单击并转到定义,因此显然Visual Studio可以找到源定义,但编译器不能。下面的屏幕截图显示了我为我的指令创建的.ts文件中的错误。我缺少什么想法?

enter image description here

1 个答案:

答案 0 :(得分:0)

该文件需要引用angular.d.ts。此外,设置值的代码也不正确。例如,它应该是restrict: "E",而不是public restrict = "E";。冒号告诉Typescript它是一个类型定义。

我很好奇,为什么我需要angular.d.ts参考,为什么tds.d.ts无法工作,因为它反过来会引用angular.d.ts。是否通常在每个角度文件的顶部放置对d.ts文件的引用?如果是这样,我的项目可能会有超过150个angularjs文件。

这是最终的工作代码:

///<reference path="../../../typings/angularjs/angular.d.ts" />

module eStore.PromoCode {
    export class PromoCodeDirective implements ng.IDirective {
        public restrict = "E";
        public templateUrl = "Scripts/Checkout/PromoCode/promoCode.html";
        public scope = {};
        public controller = "PromoCodeController as vm";

        static factory(): ng.IDirectiveFactory {
            return () => new PromoCodeDirective();
        }
    }

    angular.module("eStoreCheckout").directive("dccPromoCode", PromoCodeDirective.factory());
}