Bug报告
🔎 搜索词
ts2739 jsdoc
🕗 版本与回归信息
- 这是我尝试的每个版本中的行为,我查看了关于
ts2739
的FAQ条目。
⏯ Playground链接
带有相关代码的Playground链接:
- JavaScript + JSDoc
- TypeScript 中相同代码的等效项
💻 代码
JavaScript
/**
* @typedef Foo
* @property {number} foo
* @property {string} bar
*/
/** @type {Foo} */
const x = {}; // No error here, even though x is missing some properties
x.foo = 3;
TypeScript
type Foo = {
foo: number;
bar: string;
}
const x : Foo = {}; // x gets a TS2739 error, as expected
x.foo = 3;
🙁 实际行为
JavaScript + JSDoc版本没有得到TS2739错误。
🙂 预期行为
应该发出TS2739,类似于在这段代码的TypeScript等效项中发生的情况。
我认为这可能是为了解决在JavaScript中可能发生但在使用TypeScript时永远不会发生的情况(尽管我不确定这种情况可能是什么)。如果是这种情况,请考虑将此行为视为添加一个配置选项以消除此行为的特性请求。
1条答案
按热度按时间qgelzfjb1#
我明白在JS中允许懒惰初始化,但实际上这似乎是一个错误,即使在使用所有属性之前就使用了
x
,错误也不会被标记。