关于 vue 中写 ts 问题

2020-03-04 11:22:06 +08:00
 dxcqcv

2、变量定义为 undefined,无法被 Vue 进行数据监控

@Component
class MyComp extends Vue {
  foo = undefined //无效
  bar = null //有效

   data() {
     return {
         baz : undefined // 有效
    }
  }

}

如果有需要在 data hooks 里定义 ts,应该怎么定义?比如需要定义 baz 的类型

handleCollapse(e: HTMLElement  ) {
  // const targetEl  = e.target as HTMLInputElement  
  const targetEl  = e.target   
  const contentEl = targetEl.parentElement.nextSibling 

@click 事件中的 e 应该怎么定义?试了都不行,

    (property) Node.parentElement: HTMLElement | null
   Object is possibly 'null'.Vetur(2531)
5687 次点击
所在节点    Vue.js
25 条回复
mufeng
2020-03-04 18:22:12 +08:00
vue 2 写 ts 基本上类型推到就是废的
gjquoiai
2020-03-04 20:14:40 +08:00
shadeofgod
2020-03-04 20:32:01 +08:00
handleCollapse<HTMLInputElement>(e: Event ) {}
shadeofgod
2020-03-04 20:36:56 +08:00
xiaojie668329
2020-03-04 21:25:01 +08:00
赋值为 undefined 等于没赋值吧,可以 foo! 这样写告诉编译器这个变量将由 vue 进行初始化。

target. parentElement 不一定存在啊,所有的元素查找都可能为 null,你确定它一定存在,可以用类型断言。
简洁的写法:target.parentElement! 表示 parentElement 不为空。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/649697

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX