使用方式

.mpx中编写ts

.mpx文件中script标签声明lang为ts,在编译时会自动这部分script中的内容进行ts类型检查

  1. <script lang="ts">
  2. // 内联编写ts代码
  3. </script>

由于大部分IDE对ts的语法提示支持都只对.ts和.d.ts文件生效,上述在.mpx文件中编写ts代码虽然能在编译时进行ts类型检查,但是无法享受IDE中编写ts时的代码提示和实时报错等优秀体验,所以,我们更建议大家创建一个.ts文件进行ts代码编写,通过src的方式引入到.mpx当中

  1. <script lang="ts" src="./index.ts"></script>

为.ts文件添加loader

在webpack配置中添加如下rules以配置ts-loader

  1. {
  2. test: /\.ts$/,
  3. use: [
  4. 'babel-loader',
  5. 'ts-loader'
  6. ]
  7. }

编写tsconfig.json文件

对相关配置不熟悉的同学可以直接采用下面配置,能够最大限度发挥mpx中强大的ts类型推导能力

  1. {
  2. "compilerOptions": {
  3. "target": "es6",
  4. "allowJs": true,
  5. "noImplicitThis": true,
  6. "noImplicitAny": true,
  7. "strictNullChecks": true,
  8. "moduleResolution": "node",
  9. "lib": [
  10. "dom",
  11. "es6",
  12. "dom.iterable"
  13. ]
  14. }
  15. }

增强类型

如果需要增加 Mpx 的属性和选项,可以自定义声明 TypeScript 补充现有的类型。

例如,首先创建一个 types.d.ts 文件

  1. // types.d.ts
  2. import { Mpx } from '@mpxjs/core'
  3. declare module '@mpxjs/core' {
  4. // 声明为 Mpx 补充的属性
  5. interface Mpx {
  6. $myProperty: string
  7. }
  8. }

之后在任意文件只需引用一次 types.d.ts 声明文件即可,例如在 app.mpx 中引用

  1. // app.mpx
  2. /// <reference path="./types.d.ts" />
  3. import mpx from '@mpxjs/core'
  4. mpx.$myProperty = 'my-property'