// interface IObj {
// key: string
// value: string
// }
// interface ISpecs<T> {
// items: T
// }
// interface IData <T>{
// dataType: string
// specs: T
// }
// interface IAttr {
// name: string
// identifier: string
// dataDefine: IData<ISpecs<Array<IObj>>>
// }
// class Attribute implements IAttr {
// name: string
// identifier: string
// dataDefine: IData<ISpecs<Array<IObj>>>
// constructor(name: string = '', identifier: string = '', dataDefine: IData<ISpecs<Array<IObj>>> = { dataType: 'int', specs: { items: [{ key: '', value: '' }] } }) {
// this.name = name
// this.identifier = identifier
// this.dataDefine = {
// dataType: dataDefine.dataType,
// specs: {
// items: dataDefine.specs.items
// }
// }
// }
// }
// const test = new Attribute()
// console.log(test, 'testtest')
interface Ispecs {
min?: number,
max?: number,
step?: number,
}
interface IData {
dataType:string,
specs: Ispecs
}
interface IAttr {
propertyKey: string,
dataDefine: IData
}
class A implements IAttr{
propertyKey: string;
dataDefine:IData
constructor(props:IAttr = {
propertyKey:'ss',
dataDefine:{
dataType:'dataType',
specs: {
min: 1,
max: 2,
step:2,
}
}
}){
this.propertyKey = props.propertyKey
this.dataDefine = {
dataType:props.dataDefine.dataType,
specs:{
min: 1,
max: 2,
step:2,
}
}
}
say(){
console.log('sayHello')
}
}
const aa = new A()
aa.say()
console.log(aa)