[英]Simple TypeScript Class gives TypeError
I want to use class Literal from file Classes.tsx in file App.tsx but TypeScript returns a TypeError even if they're in the same file.我想在文件 App.tsx 中使用文件 Classes.tsx 中的类文字,但即使它们在同一个文件中,TypeScript 也会返回 TypeError。 Works fine on typescriptlang.org/play .在typescriptlang.org/play上工作正常。
// Classes.tsx
abstract class Expression {
abstract val: boolean;
abstract str: string;
}
class Literal extends Expression {
val: boolean;
constructor(value: boolean) {
super();
this.val = value;
}
get str(): string {
return this.val ? "W" : "F";
}
}
// App.tsx
import { Expression, Literal } from "./Classes";
let F: Literal = new Literal(false);
Error: TypeError: Cannot set property str of #<Literal> which has only a getter
错误: TypeError: Cannot set property str of #<Literal> which has only a getter
Why?为什么?
There is two solutions:有两种解决方案:
abstract str: string;
to abstract get str(): string;
将声明更改为 getter(从abstract str: string;
到abstract get str(): string;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.