用ts(typescript)写东西有一段时间了,之前库文件的提示使用typings管理,国内访问非常慢项目集成也不太方便。ts 2.0提供了npm包的形式来安装语法提示库,使用国内npm mirror速度飞快。用一个示例项目进行说明:
创建项目
1 2 3 4 5
| mkdir types_demo cd types_demo mkdir src mkdir app npm install typescript jquery @types/jquery --save-dev
|
配置
创建 types_demo/tsconfig.json 文件,内容如下:
1 2 3 4 5 6 7 8 9 10 11
| { "compilerOptions": { "module": "commonjs", "target": "es5", "noImplicitAny": false, "sourceMap": true, "removeComments": false, "sourceRoot": "src", "outDir": "app" } }
|
编辑 types_demo/package.json,添加以下内容:
1 2 3 4
| "scripts": { "watch": "tsc -w", "compile": "tsc -p ." },
|
编码
创建 types_demo/index.html
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| <!DOCTYPE html> <html lang="zh-cn"> <head> <meta charset="UTF-8"> <title>types demo</title> </head> <body> <div id="test"> <ul> <li>1</> <li><a href="#">types demo</a></li> </ul> </div> <script src="./node_modules/jquery/dist/jquery.min.js"></script> <script src="./app/index.js"></script> </body> </html>
|
创建 src/index.ts
1 2 3 4 5 6
| let test = function () { let $a = $('#test li>a'); console.log($a.text()); }
test();
|
查看效果
执行 npm run compile 编译ts文件到js,因为@types库已经有jquery的提示,编计不会报错。用浏览打开 index.html 代码正常运行,有console.log输出的内容。
说明
使用 @types 语法库至少需要 ts 2.0.10(2.0已支持但有bug)以上版本。更多关于 @types 的配置查看 https://www.typescriptlang.org/docs/handbook/tsconfig-json.html#types-typeroots-and-types