引用 Angular 1.5 时出现无效的“引用”指令语法错误

Posted

技术标签:

【中文标题】引用 Angular 1.5 时出现无效的“引用”指令语法错误【英文标题】:Invalid 'reference' directive syntax error when referencing angular 1.5 【发布时间】:2017-02-01 19:18:41 【问题描述】:

我昨天已经升级到Typescript 2.0.3,并将参考路径更新为

/// <reference types="angular" />

使用以下命令安装 Angular 1.5x 的类型后

npm install -s @types/angular

我在构建项目时遇到错误,但错误并没有消失。

无效的“参考”指令语法

如何解决这个问题?

/// <reference types="angular" />
/// <reference types="d3" />

(function () 
    'use strict';

    var app = angular.module('charts', []);

    app.controller('mainCtrl', function mainCtrl($scope, appService) 

        var vm = this;

        vm.data1 = [1, 2, 3, 4];
        vm.data2 = [4, 5, 7, 11];
        vm.update = function (d, i) 
            vm.data1 = appService.GetRandomData();
            console.log('new data1', vm.data1);
        ;

        vm.update2 = function (d, i) 
            vm.data2 = appService.GetRandomData();
            console.log('new data2', vm.data2);
        ;
    );

    app.directive('barChart', function ($timeout) 
        var chart = d3.custom.barChart();
        return 
            restrict: 'E',
            replace: true,
            scope: true,
            bindToController: 
                data: '=',
            ,
            controller: 'mainCtrl',
            controllerAs: 'ctrl',
            link: function (scope, element, attrs, ctrl) 
                var chartEl = d3.select(element[0]);

                chartEl.datum(ctrl.data).call(chart)
            
        
    );

    app.directive('chartForm', function () 
        return 
            restrict: 'E',
            replace: true,
            controller: 'mainCtrl',
            templateUrl: 'chartform.html'
        
    );

    app.service('appService', function () 
        this.GetRandomData = function () 
            var rdata;

            rdata = d3.range(~~(Math.random() * 50) + 1).map(function (d, i) 
                return ~~(Math.random() * 100);
            );

            return rdata;
        
    );

 ());

【问题讨论】:

请发布实际代码,而不是图片 我已经添加了代码。 【参考方案1】:

我已更新工作区设置文件.vscode/settings.json 中的打字稿路径以指向最新的打字稿版本。这将使 VS Code 使用最新版本的打字稿。


    "typescript.tsdk": "C:\\Users\\UserName\\AppData\\Roaming\\npm\\node_modules\\typescript\\lib"

我不认为这是问题,因为当我在集成终端中运行 tsc -v 时,我得到了 2.0.3

现在我正在修复编译器错误。

有用的链接:

Can I use a relative path to configure typescript sdk? "Invalid 'reference' directive syntax" Typescript2 @types references

【讨论】:

【参考方案2】:

对于那里的 mac 人,如果您全局安装 TypeScript,您的路径如下所示:

  "typescript.tsdk": "/Users/me_me_me/.nvm/versions/node/VERSIION/bin/tsc"

【讨论】:

【参考方案3】:

我在构建服务器 VSTS 中收到此错误。

升级类型脚本版本解决了我的问题。

在包中,json:从

"typescript": "2.8.3"

 "typescript": "3.5.1"

【讨论】:

以上是关于引用 Angular 1.5 时出现无效的“引用”指令语法错误的主要内容,如果未能解决你的问题,请参考以下文章

通过 Angular JS $http.post 使用 slim 框架时出现 404 无效的 http 状态代码

ASP.NET - 在 VS 2017 中浏览 Nuget 包时出现“根级别的数据无效”错误

引用 .dll 文件时出现错误消息

将服务引用添加到引用了 JSON.NET 库的项目时出现奇怪的问题

COM组件DLL引用时出现检索组件错误

读取用户会话时出现 NULL 引用异常(反射)