有没有办法直接将打字稿定义(.d.ts文件)添加到纯JavaScript项目(例如package.json).我找不到任何相关的文档.
rgv*_*sar 14
在TypeScript手册中有一个页面,用于向NPM包添加类型.我会在这里复制并粘贴:
NPM包的类型
TypeScript编译器通过遵循Node.js模块解析算法来解析节点模块名称.TypeScript还可以加载与npm包捆绑在一起的打字.编译器将尝试使用以下规则集来发现模块"foo"的类型:
尝试加载位于相应包文件夹(node_modules/foo /)中的package.json文件.如果存在,请阅读"typings"字段中描述的typings文件的路径.例如,在下面的package.json中,编译器将解析node_modules/foo/lib/foo.d.ts中的类型.
{
"name": "foo",
"author": "Vandelay Industries",
"version": "1.0.0",
"main": "./lib/foo.js",
"typings": "./lib/foo.d.ts"
}
Run Code Online (Sandbox Code Playgroud)
尝试加载位于包文件夹(node_modules/foo /)中名为index.d.ts的文件 - 此文件应包含包的类型.
模块分辨率的精确算法可以在这里找到.
你的定义文件应该
- be.d.ts文件
- 写成外部模块
- 不包含三斜杠引用
理由是,打字不应该将新的可编辑项目带入编译文件集; 否则在编译期间可以覆盖包中的实际实现文件.此外,加载类型不应通过从同一库的不同版本引入可能存在冲突的条目来污染全局范围.
types除非您使用package.json 中的属性,否则 Visual Studio 2015 将无法识别定义文件
https://www.typescriptlang.org/docs/handbook/declaration-files/publishing.html
{
"name": "awesome",
"author": "Vandelay Industries",
"version": "1.0.0",
"main": "./lib/main.js",
"types": "./lib/main.d.ts"
}
Run Code Online (Sandbox Code Playgroud)
*您必须在 ts 文件中使用三个斜杠包含引用路径。
/// <reference path="../node_modules/../lib/main.d.ts" />
对于登陆这里并想要将类型链接到他们的 npm 包的其他人来说,一个方便的教程可能会有所帮助!
| 归档时间: |
|
| 查看次数: |
4165 次 |
| 最近记录: |