我是否可以使用 VSCode 声明 TS 接口以在普通 JS 项目中使用?



使用MS VisualCode编辑器,我正在尝试进行一些类型检查。我想继续使用Javascript,但从类型检查接口和数据结构中获得一些好处。

根据 vscode 文档,我可以创建一个globals.d.ts类型定义文件,我喜欢它:

interface QueryObj {
input: string;
query: string;
}
declare namespace TrainingModel {
function preprocessQuery(qo: QueryObj): QueryObj
}

然后我尝试声明一个使用此 QueryObj 类型的函数。

checkOneData (queryObj) {
queryObj.foo = 1

所以我希望得到一个警告,queryObj.foo不应该被使用......但什么都没有。

我还尝试添加一个 JSDoc 来描述参数

/**
* @param {QueryObj} queryObj
* @returns {Promise<any>}
*/
async checkOneData (queryObj) {

但是这行* @param {QueryObj} queryObj只是给了我错误cannot find name 'QueryObj'

我知道正在处理.d.ts文件,因为当它不完整时,我会收到错误。

因此,除了字符串/数字等基本参数类型之外,VSCode 是否可以以这种方式以某种方式检查用户定义的数据结构,就像我们在 TypeScript 中使用接口一样?

裁判:

https://code.visualstudio.com/docs/languages/javascript https://github.com/Microsoft/TypeScript/wiki/Type-Checking-JavaScript-Files https://www.typescriptlang.org/docs/handbook/declaration-files/by-example.html

您可以做的最简单的事情是使用正确的 TS 配置文件设置一个全新的 TS 项目。(只需谷歌它或YouTube它,你会立即找到这个。 例如这个:https://www.youtube.com/watch?v=dPgAXFcFHCM(

然后,在您正在处理的 TS 文件中,您不需要写入 TS。你可以只用JS编码,然后(根据您的配置(将.ts文件编译为原版JS。然后,您可以在任何需要的地方使用编译的JS文件。

最新更新