我最近开始写打字稿,但有多年的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 文档以获取更详细的示例。