我可以使用TSCode声明TS界面以用于普通JS项目吗?

时间:2018-08-22 21:10:48

标签: javascript typescript interface visual-studio-code typechecking

使用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文件正在处理中,因为它不完整时会出现错误。

因此,除了基本参数类型(例如字符串/数字)之外,是否可以像在TypeScript中使用接口那样,以某种方式使用VSCode来检查用户定义的数据结构?

参考:

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

1 个答案:

答案 0 :(得分:0)

最简单的方法是使用适合TS的配置文件设置一个全新的TS项目。 (只需在Google或youtube上进行搜索,您就会立即找到它。例如,这个https://www.youtube.com/watch?v=dPgAXFcFHCM

然后,在您正在处理的TS文件中,无需写入TS。您可以只使用JS进行编码,然后(根据您的配置)将.ts文件编译为原始JS。然后,您可以在需要的地方使用已编译的JS文件。