【问题标题】:Can I declare TS interfaces for use in plain JS projects with VSCode?我可以使用 VSCode 声明 TS 接口以用于纯 JS 项目吗?
【发布时间】:2019-01-29 04:57:21
【问题描述】:

使用 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

【问题讨论】:

  • 是的,是的。 JavaScript 是有效的打字稿。
  • 根据上述内容,它不会像我想要的那样做。我想要的不仅仅是内置类型检查,我想要使用接口和结构。
  • 根据上述内容,它不会像我想要的那样做。我想要的不仅仅是内置类型检查,我想要使用接口和结构。

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


【解决方案1】:

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

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

【讨论】:

猜你喜欢
  • 2023-03-16
  • 2023-04-10
  • 2018-06-26
  • 1970-01-01
  • 1970-01-01
  • 2023-03-26
  • 2013-05-28
  • 2015-01-17
  • 1970-01-01
相关资源
最近更新 更多