【前端工程】Typescript的使用常识

Typescript的认识

Js的超集,核心是提供了静态类型系统。
例如:定义成数字类型的变量不能用字符串类型值赋值。html

vue项目中使用Typescript须要的插件

typescript”: “\^3.1.4” (这个是必须的,ts库)
“ts-loader”: “\^3.5.0” (识别ts的loader)
“tslint”: “\^5.11.0” (tslint校验库)
“tslint-loader”: “\^3.5.4” (tslint的loader)
“tslint-config-standard”: “\^8.0.1” (用于tslint默认校验规则)
“vue-property-decorator”: “\^7.2.0” (用于在.vue文件中使用ts语法)

tsconfig.json配置Typescript编译规则

  • 不带任何输入文件的状况下调用tsc,编译器会从当前目录开始去查找tsconfig.json文件,逐级向上搜索父目录。
  • 不带任何输入文件的状况下调用tsc,且使用命令行参数--project(或-p)指定一个包含tsconfig.json文件的目录。
  • 当命令行上指定了输入文件时,tsconfig.json文件会被忽略。
{
  "compilerOptions": {
    "target": "es6", //Ts编译成es6
    "strict": true,
    "module": "esnext",//生成指定的模块系统代码
    "typeRoots": ["./src/types"],//指定编译的包的范围
    "types": ["node", "webpack-env"],//指定可编译的特定包
    "moduleResolution": "node",
    "sourceMap": true,
    "noImplicitAny": true,
    "jsx": "preserve",
    "lib": ["dom", "es6", "es2017"],
    "baseUrl": "./",
    "paths": {//基于baseUrl,进行模块解析的文件范围
      "@/*": ["src/*"],
      "@config/*": ["config/*"],
      "@script/*": ["script/*"],
      "@store/*": ["src/store/*"],
      "@library/*": ["src/library/*"],
      "@modules/*": ["src/modules/*"],
      "@style/*": ["src/style/*"],
      "@components/*": ["src/components/*"]
    },
    "allowSyntheticDefaultImports": true
  },
  "include": ["./src/**/*"]
}

配置webpack,支持对Typescript的加载

image.png

vue文件中用Typescript时注意事项

一、Typescript默认不能识别.vue 文件,因此须要在.d.ts 中声明.vue 模块vue

declare module '*.vue' {
  import Vue from 'vue'
  export default Vue
}

二、在导入 vue 组件时须要指明 .vue 后缀。node

Typescript中没有后缀的文件,会首先被看成为 js 文件,若是 js 文件没有,就会被看成 .ts 文件。webpack

Typescript类型定义方法

typees6

interfaceweb

.d.ts 文件typescript

Typescript为第三方插件定义类型

Typescript类型定义json

持续更新...segmentfault

更多资料:dom

vue 中使用 Ts

vue 对 Ts 的支持

从 JavaScript 到 TypeScript 6 - Vue 引入 TypeScript

相关文章
相关标签/搜索