1
我試圖將一個靜態方法添加到我的模型,但如果我這樣做,我得到這個錯誤:An interface may only extend a class or another interface.
使用typescript&mongoose的靜態方法會:「一個接口只能擴展一個類或另一個接口。」
這是我的代碼:
import * as mongoose from 'mongoose';
import {IPermission} from './IPermission';
export interface IRoleDocument extends mongoose.Document {
name: string,
inherit_from: {
type: mongoose.Schema.Types.ObjectId,
ref: 'Role'
},
permissions: Array<IPermission>
};
export interface IRole extends mongoose.Model<IRoleDocument> {
};
錯誤來自export interface IRole extends mongoose.Model<IRoleDocument>
格爾茨
我讀了SA的線程。但是沒有靜態方法的聲明。如果我在你的例子中做了IRoleDefinition定義,但是不是靜態的。對於TypeScript,IRoleDocument中的成員不存在。 – R3Tech
我不是貓鼬的專家。爲了幫助我,我想澄清以下幾點:1)接口不能同時聲明靜態和實例方法 - 通常使用兩個單獨的接口2)不可能擴展mongoose.Model,因爲它是交叉類型。 –
Amid
我googled如何創建靜態方法,打字稿找到和我寫的方式是答案......也許是一種墮落的方式。我知道接口只能有一種方法類型,但是如何告訴打字稿我的意思是?第二點,我不清楚...... – R3Tech