angularjs - ข้อผิดพลาดไวยากรณ์ directive 'reference' ไม่ถูกต้องเมื่ออ้างอิงกับ angular 1.5
ฉันได้อัปเกรดเป็น Typescript 2.0.3 เมื่อวานนี้และอัปเดตเส้นทางการอ้างอิงเป็น
/// <reference types="angular" />
หลังจากติดตั้ง typings สำหรับ Angular 1.5x โดยใช้คำสั่งต่อไปนี้
npm install -s @types/angular
ฉันได้รับข้อผิดพลาดเมื่อฉันสร้างโปรเจกต์และข้อผิดพลาดนั้นไม่หายไป
ไวยากรณ์ของคำสั่ง 'reference' ไม่ถูกต้อง
จะซ่อมอันนี้ได้อย่างไร?
/// <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
ฉันกำลังได้รับข้อผิดพลาดนี้ในเซิร์ฟเวอร์การสร้าง, VSTS.
การอัพเกรดเวอร์ชันของไทป์สคริปต์ช่วยแก้ปัญหาของฉันได้
ใน package.json: เปลี่ยนจาก
"typescript": "2.8.3"
ถึง
"typescript": "3.5.1"
คำตอบ #2
ฉันได้อัปเดตเส้นทาง TypeScript ในไฟล์การตั้งค่า workspace .vscode/settings.json ให้ชี้ไปที่เวอร์ชัน TypeScript ล่าสุด ซึ่งจะทำให้ VS Code ใช้ TypeScript เวอร์ชันล่าสุด
{
"typescript.tsdk": "C:\\Users\\UserName\\AppData\\Roaming\\npm\\node_modules\\typescript\\lib"
}
ฉันไม่ได้ถือว่านี่เป็นปัญหาเพราะเมื่อฉันรัน tsc -v ในเทอร์มินอลแบบบูรณาการ ฉันได้รับ 2.0.3
ตอนนี้ฉันกำลังแก้ไขข้อผิดพลาดของคอมไพเลอร์อยู่
ลิงก์ที่เป็นประโยชน์:
- ฉันสามารถใช้เส้นทางสัมพัทธ์ในการกำหนดค่า SDK ของ TypeScript ได้หรือไม่?
- "ไวยากรณ์ของคำสั่ง 'reference' ไม่ถูกต้อง" Typescript2 @types references
