打字稿错误?或者只是打字稿检查并不完美



我最近开始写打字稿,但有多年的JS经验。


例 1

然后在开发时,我发现

const A : B = class B {}

上面会抛出"不能命名'B'"的警告。

但是,这不会。

class B {}
const A : B = B ;

例 2

另一个例子是

class B {}
const A : B = B ;
const C : A = A ;

这将引发"无法命名'A'"的警告


结果,tsc 检查似乎只能识别从"类"开始的任何内容。

从JS的角度来看,没有任何问题。即使使用所有这些进行编译也可以工作。

所以我的问题是,我认为这只是tsc检查不够好......但是,如果我绕过这将失去类型检查的意义,因此我只能妥协我的写作风格可能需要将其删除。

如果我错了,你能给我一些建议吗?或者是否有其他原因导致错误?

必须先定义类,然后才能将其用作类型。

此外,在第三个示例中,您尝试将常量用作类型。这不起作用,因为 A 没有类定义,因此不能声明为类型。阅读有关类和类型定义的 Typescripts 文档以获取更详细的示例。

相关内容

最新更新