How do I access TypeScript definitions in ASP.NET

2020-07-03 04:48发布

问题:

I am having trouble understanding how I can access the TypeScript definition files which I installed with the NuGet package manager. I installed the TypeScript definition files for Angular with the following command:

Install-Package angularjs.TypeScript.DefinitelyTyped

And it shows up in the project.json file:

"dependencies": {
    "Microsoft.AspNet.Server.IIS": "1.0.0-beta3",
    "Microsoft.AspNet.Mvc": "6.0.0-beta3",
    "Microsoft.AspNet.StaticFiles": "1.0.0-beta3",
    "Microsoft.AspNet.Server.WebListener": "1.0.0-beta3",
    "angularjs.TypeScript.DefinitelyTyped": "3.2.5"
},

And a reference has been placed under 'References', linking to:

C:\Users\.k\packages\angularjs.TypeScript.DefinitelyTyped\3.2.5

I am able to reference to this by using the absolute path, but this won't work:

/// <reference path="C:\Users\<user>\.k\packages\angularjs.TypeScript.DefinitelyTyped\3.2.5\Content\Scripts\typings\angularjs\angular.d.ts" />

Angular depends on jQuery, which it will look for in:

'C:/Users//.k/packages/angularjs.TypeScript.DefinitelyTyped/3.2.5/Content/Scripts/typings/jquery/jquery.d.ts'

So my question is: how can I reference to TypeScript definition files installed as a NuGet package?

回答1:

Currently angularjs.TypeScript.DefinitelyTyped nuget package supports only ASP.NET 4 folders structure. It puts files in your ~\Scripts\typings\angularjs\, (see nuget-automation source) folder you can reference it from there like this:

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

In order to use typings in ASP.NET 5 you have to just copy *.d.ts files from \packages\angularjs.TypeScript.DefinitelyTyped\[VERSION] to any folder accessible from your project and change reference path accordingly.

P.S. Feel free to create new issue in NugetAutomation on GitHub.