代码检查

2019年1月,ts官方eslint:typescript-eslint

配置vscode eslint

  1. {
  2. "eslint.validate": [
  3. "javascript",
  4. "javascriptreact",
  5. "typescript"
  6. ],
  7. "typescript.tsdk": "node_modules/typescript/lib"
  8. }
  9. // 自动修复
  10. {
  11. "eslint.autoFixOnSave": true,
  12. "eslint.validate": [
  13. "javascript",
  14. "javascriptreact",
  15. {
  16. "language": "typescript",
  17. "autoFix": true
  18. },
  19. ],
  20. "typescript.tsdk": "node_modules/typescript/lib"
  21. }

编译选项

allowJs

允许编译 js 文件。设置为 true 时,js 文件会被 tsc 编译,否则不会。一般在项目中 js, ts 混合开发时需要设置。

  1. # 设置为 true 时,编译后的文件包含 foo.js
  2. ├── lib
  3. ├── foo.js
  4. └── index.js
  5. ├── src
  6. ├── foo.js
  7. └── index.ts
  8. ├── package.json
  9. └── tsconfig.json
  10. # 设置为 false 时,编译后的文件不包含 foo.js
  11. ├── lib
  12. └── index.js
  13. ├── src
  14. ├── foo.js
  15. └── index.ts
  16. ├── package.json
  17. └── tsconfig.json

allowSyntheticDefaultImports

允许对不包含默认导出的模块使用默认导入。这个选项不会影响生成的代码,只会影响类型检查。

  1. export = foo // 是 ts 为了兼容 commonjs 创造的语法,它对应于 commonjs 中的 module.exports = foo
  2. // 在 ts 中,如果要引入一个通过 export = foo 导出的模块
  3. // 标准的语法是 import foo = require('foo'),或者 import * as foo from 'foo'
  4. // 但习惯是 import foo from 'foo'
  5. // 如果allowSyntheticDefaultImports设置为false,`import foo from 'foo'` 会报错,为了解决这个问题,需要开启这个选项