typescript 配合 amd 规范的更轻量、"纯" 前端打开方式html
曾经数年之前,就尝试 typescript 无奈至今一直有几个小问题没有处理:前端
0 必需要
import * as $ from "jquery"
这样的方式写代码,才能有提示
1 因为0,必需要webpack
打包项目,才能把jquery
以external
方式剔除
2 必需要node_modules
下安装各类库的 d.ts 才能resolve
到提示文件vue
常常会想,既然很麻烦,怎么使用无所谓,加个 webpack
工具链也能忍,html 提早引入脚本方式要放弃,一点点妥协以后,项目才能跑起来,对 npm
和 webpack
的重度依赖终究是个梗!node
因而忽然有一天发现了以下解法:jquery
import * as $ from "jquery"
使用代码不变,才能有提示webpack
require.config({ baseUrl: './', paths: { "jquery": "../lib/jquery.min", }, shim: { "jquery": { exports: '$' }, } })
这里同时加入 paths
和 shim
,从而支持了 script
引入 和 require
加载web
<script src="../lib/vue.min.js"></script> <script src="../lib/esl.min.js"></script>
html
正常使用 script
全局引入,我用了百度的 esl
加载器 requirejs
同理typescript
"paths": { "jquery": ["typing/jquery/index.d.ts"] },
tsconfig
配置后,能够把 @types/jquery
的申明文件放在自定义项目目录./typing/
里了npm
且你能够自定义静态化的处理
typing
下的d.ts
文件!
且你能够自定义静态化的处理typing
下的d.ts
文件!
且你能够自定义静态化的处理typing
下的d.ts
文件!工具
重事3遍,d.ts
和 模块名的正确对应后,vscode
提示完美!
至此,任意一个前端项目仅须要依赖一个 tsc
编译 typescript
就能够轻量的完美运行了,
终于能够优雅的写 ts
了,爽!
因为依赖太少,你们能够根据须要定制本身的方案!