我有一个混合的TS / JS项目-最终我们将进行完整的TS,但这距离现在还有很长的路要走。
同时,我们在JS文件和// @ts-check
标签中使用了<script>
伪造词,它们非常强大。
我想引用JS文件中的某些TS定义,如下所示:
// @ts-check
/// <reference path="MyInterface.d.ts" />
/** @type {MyInterface} */
let x = ...
仅这是行不通的-TS类型检查(以及VS2017的智能感知)认为x
是any
。
我想对x
上的类型定义具有智能感知,并在调用x.propName
但MyInterface
没有propName
时发出警告。
我知道我可以用JS文档<reference path="MyInterface.d.ts" />
代替@typedef
,但是我有很多 个定义文件,并且不想重复定义。
有什么方法可以使@ts-check
引用一个.d.ts
文件?
答案 0 :(得分:1)
official recommendation将使用导入类型:
// @ts-check
/** @type {import("./MyInterface").MyInterface} */
let x = ...;