我的问题是我不知道如何解决这个问题。我在这个网站上看过其他类似的问题,没有一个有用的。我有这个d.ts:
declare module prompto {
export type PromptoOptions = {
showPreview: boolean,
fileName: string,
outputPath: string,
components: QOptions[]
}
export type QOptions = {
name: string,
type: number
}
export class Prompto {
public addComponents(data: Array<QOptions>): void;
public run(): void;
public showPreview: boolean;
public outputPath: string;
public fileName: string;
public components: QOptions[];
}
}
这是一个类:
import PromptoOptions = prompto.PromptoOptions;
import { run } from "../functions/run";
import QOptions = prompto.QOptions;
export class Prompto extends prompto.Prompto {
constructor(options: PromptoOptions = {
showPreview: false,
outputPath: "./",
fileName: "output",
components: []
}) {
super();
this.showPreview = options.showPreview
this.fileName = options.fileName
this.outputPath = options.outputPath
this.components = [];
}
addComponents(arr: Array<QOptions>) {
for (const item of arr) {
if (!item.name || !item.type) {
throw new TypeError("Invalid item")
}
this.components.push(item)
}
}
run() {
console.log(this)
run({ components: this.components })
}
}
和完整错误:
src/structures/prompto.ts:17:14 - error TS2551: Property 'components' does not exist on type 'Prompto'. Did you mean 'addComponents'?
17 this.components = [];
~~~~~~~~~~
src/structures/prompto.ts:20:5
20 addComponents(arr: Array<QOptions>) {
~~~~~~~~~~~~~
'addComponents' is declared here.
我只想解决这个问题。我已经试着解决这个问题7个小时了。无论我问谁都不帮忙。只是请。
1条答案
按热度按时间bkhjykvo1#
我在TS游戏场上玩过这个,我认为 a 修复将是在构造函数之前添加
public components: QOptions[];
行。如果你愿意,可以使用不同的访问修饰符(private
或protected
)。然而,我也要说,我从来没有见过将
import
与=
一起使用的语法,老实说,我不知道这可能会对代码产生什么影响。为了解决这个问题,我个人会删除这些导入,并在.ts文件中手动写入我希望使用的类型,以检查类是否按照我希望的方式运行。然后,我会删除这些类型并导入它们,以检查导入是否按照我希望的方式运行。