小编Ben*_*chs的帖子

TypeScript:要求两个数组的长度相同?

说我正在做Tab+Panel调用的组件TabsPanels。我想确保我得到了相同数量的TabPanel组件,如下所示:

type TabsPanelsProps = {
  tabs: Tab[];
  panels: Panel[];
}
Run Code Online (Sandbox Code Playgroud)
<TabsPanels
  tabs={[<Tab/>, <Tab/>]}
  panels={[<Panel/>]} // Error: tabs.length and panels.length do not match
/>
Run Code Online (Sandbox Code Playgroud)

有没有办法做到这一点?如果有一些效用函数,比如

PropsAreEqual<T, K1, K2, P>
where
T = type
K1 = key 1
K2 = key 2
P = the property to be equal
Run Code Online (Sandbox Code Playgroud)

这显然很糟糕,但你明白我在说什么。那么你可以做

PropsAreEqual<TabsPanelsProps, 'tabs', 'panels', 'length'>
Run Code Online (Sandbox Code Playgroud)

javascript typescript reactjs

8
推荐指数
1
解决办法
917
查看次数

自定义元素:类及其父类都可以运行connectedCallback吗?

我有一堂课叫QueryAddable

class QueryAddable extends HTMLElement {
  connectedCallback() {
    console.log('QueryAddable');
  }
Run Code Online (Sandbox Code Playgroud)

它有几个扩展它的类,例如

class QueryGroup extends QueryAddable {
  constructor() {
    super();
  }
  connectedCallback() {
    console.log('QueryGroup');
  }
Run Code Online (Sandbox Code Playgroud)

最好,如果我放在<query-group>页面上,我希望看到QueryAddableQueryGroup登录控制台。我想这不会发生,因为我只<query-group>在页面上而不是<query-addable>.

我完全可以将一个方法放入QueryAddable被调用的方法中,onLoad并在每个扩展类的 中调用该方法connectedCallback,但为什么我必须在多个地方而不是一个地方执行此操作呢?

有没有办法让这两个connectedCallback函数都运行,或者是否设置为只有一个函数可以运行?

javascript web-component custom-element

3
推荐指数
1
解决办法
1164
查看次数