AnuglarJS’s $resource service is available in TypeScript with adding reference for DefinitelyTyped file.
///var productRepository = $resource('http://localhost:44312/api/products/:id', { id: '@Id' }); $scope.products = productRepository.query();
Enable Intellisense
Intellisense for properties are enabled according to the defined type.
/// <reference path="typings/angularjs/angular.d.ts" />
interface Product {
Id: number;
Name: string;
Price: number;
}
app.controller('myCtrl', function ($scope, $resource) {
var productRepository = $resource<Product>('http://localhost:44312/api/products/:id', { id: '@id' });
$scope.updatePrice = function(productId, newPrice){
var product = productRepository.get({ id: productId });
// Intellisense enabled
product.Price = newPrice;
product.$save();
};
}
However, intellisense for $save, $remove and other $resource methods are disabled in this way.
Enable Intellisense for both properties and $resource methods
Intellisense for both properties and $resource methods will be enabled for a type derived from IResourceClass
IResourceClass
interface Product extends IResourceClass<Product>{
Id: number;
Name: string;
Price: number;
}