reactjs - 使用 redux-orm 和 TypeScript 的模态类定义

标签 reactjs typescript redux redux-orm

我将 redux-orm 与 JS 一起使用,一切正常,但我在将我的代码从 JS 转换为 TypeScript 时遇到问题。

我已经在我的文件夹模型类中实现了方法 render(),但是 TS 转译器说:

类型“文件夹”上不存在属性“名称”

我如何指示 TypeScript name 属性存在于 Folder 实例中?

interface IFolder{
    id: number;
    name: string;
    parent: any;
}

export class Folder extends Model<ModelFields, IFolder>{

    static get modelName() {
        return 'Folder';
    }

    get render(){
        return (<p>{this.name}</p>)
    }

    static get fields() {
        return {
            id: attr(),
            name: attr(),
            parent: fk('Folder', 'children')
        };
    }
}

最佳答案

你可以在class Folder中重复所有的IFolder

export class Folder extends Model<ModelFields, IFolder> implements IFolder {
    id: number;
    name: string;
    parent: any;
...

或者使用这个技巧来不重复代码:

class IFolder extends Model<ModelFields, IFolder> {
    id: number;
    name: string;
    parent: any;
}

export class Folder extends IFolder {

关于reactjs - 使用 redux-orm 和 TypeScript 的模态类定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56533245/

相关文章:

javascript - 在 React 中将对象转换为 JSON 并作为 .json 文件下载

react-native - redux-persist/createPersistoid : error serializing state TypeError: Converting circular structure to JSON

react-native - 在 React Native 中使用 RTK-Query useLazyQuery 时,Jest 无法正确退出

javascript - 第三方 slider 添加具有 'class' 等属性的动态元素。我正在使用 react

javascript - 是否可以将 ref 添加到 props.children 元素?

css - 如何将字体添加到基于 create-react-app 的元素?

typescript - 用 worker 构建一个 TypeScript 项目

javascript - 当使用 element.style = <some CSSStyleDeclaration> 使元素消失

angular - 如何在Angular4中的同一 View 中使用ngx分页实现多个分页?

javascript - 如何在功能组件中使用react-redux进行api调用