ES7语法

  1. tsc --init // 生成一个tsconfig.json文件
  1. // 在vscode中使用es7的新语法decorator会报错
  2. // tsconfig.json
  3. "experimentalDecorators": true // 文件就不会报错了

1. 类装饰器 在不修改类的前提下,对类拓展(添加属性,添加方法)

  1. function logClass(params:any){
  2. console.log("any")
  3. console.log(params)
  4. params.prototype.skill="js"
  5. }
  6. @logClass
  7. class Student{
  8. }
  9. // 类装饰器 在不修改类的前提下,对类拓展(添加属性,添加方法)
  10. var s:any=new Student()
  11. console.log(s.skill)

2. Provide 属性装饰器 等同于之前的data

  1. <div id="app">
  2. {{list}}
  3. <!-- 父组件传值给子组件 -->
  4. <Hello :data="child"></Hello>
  5. </div>
  6. <script lang="ts">
  7. import { Vue,Provide} from 'vue-property-decorator';
  8. export default class App extends Vue {
  9. // Provide 属性装饰器 等同于之前的data
  10. @Provide() list:string = "list"
  11. @Provide() child:string = "child"
  12. mounted():void {
  13. console.log("mounted")
  14. }
  15. }
  16. </script>

3. prop 方法装饰器

  1. <script lang="ts">
  2. import { Component, Vue,Prop} from 'vue-property-decorator';
  3. @Component
  4. // Hello 为组件名
  5. export default class Hello extends Vue {
  6. // Prop 方法装饰器
  7. # // ! 表示这个数据是一定要传递的
  8. @Prop() data!:string
  9. }
  10. </script>