Drilled-prog
@Drilled-prog
Программирую на ['php', 'js']

Как такое типизировать?

class BaseComponent {
  constructor(props) {
    this.data = this.constructor.data(props)
  }
}

class MyComponent extends BaseComponent {
  static data = ({ message = 'Hello World' }) => ({
    message,
    color: 'black'
  })
}

const gg = new MyComponent({
  /* need types */
  message: 'Hello from MyComponent'
})

console.log(/* need types */ gg.data)


Онлайн пример: https://www.typescriptlang.org/play?#code/MYGwhgzh...

и нормальный ли вообще подход ?
  • Вопрос задан
  • 98 просмотров
Пригласить эксперта
Ответы на вопрос 1
Geminix
@Geminix
Фуллстек nuxt, .net разработчик
class BaseComponent<T> {
  data: T
  constructor(props: T) {
    this.data = props
  }
}

interface IExample {
  text: string
  num: number
  obj: object
}

class MyComponent extends BaseComponent<IExample> {
  data:IExample ={
    text:'',
    num:1,
    obj:{}
  }
}

const gg = new MyComponent({
    text:'',
    num:1,
    obj:{}
  })

console.log(gg.data)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы