我正在使用TypeScript来检测普通JavaScript中的键入问题。这可以通过一组有限的JSDoc tags来实现。
但是,有一个奇怪的问题。在构造函数中创建成员时,不会设置其类型。
在下面的屏幕截图中,VS Code正确地抱怨在update
方法内直接在实例上为字符串分配数字。但这并没有注意到构造函数中的错误分配。
这似乎只在构造函数中发生,因为在update
方法中创建成员确实标记了键入问题。
是否有一种方法也可以在构造函数中强制执行这些类型检查?
代码:
// @ts-check
function MyClass() {
/** @type {string} */
this.str = 0;
};
MyClass.prototype.update = function() {
this.str = 0
/** @type {number} */
this.num = ""
}
let inst = new MyClass()
inst.str = 0
inst.num = ""