对js文件使用单独的ts类型定义文件

时间:2019-03-13 10:31:29

标签: typescript visual-studio-code typescript-typings

我继承了一个无法转换为打字稿的JavaScript项目。
 是否可以为每个相应的js文件创建临时定义文件

  • 要享受本地化的类型检查?
  • 还是帮助逐步将代码库从js转换为ts?

例如这样的东西:

// MyComponent.js
export default class MyComponent extends React.Component {
  field = { users: [] }

  method() {
    this.field.users[0]. // get hints here
  }
}

// MyComponent.d.ts
interface User {
  name: string,
  uuid: number,
}

declare class MyComponent {
  field: { users: User[] }
}

其行为与单个ts文件中的行为相同

// MyComponent.ts
interface User {
  name: string,
  uuid: number,
}

export default class MyComponent extends React.Component {
  field: { users: User[] } = { users: [] }

  method() {
    this.field.users[0]. // hints: name | uuid
  }
}

在导入不同的文件时,可以使用d.ts文件,但是我希望将“定义文件” 应用于该特定文件,它是< em>“绑” 。我已经读过,合并两个模块作用域是邪恶的(github issue),但是为什么首先还要将其视为两个作用域,因为从这样的模块导入时,它被视为一个作用域?因此,假设地,一个(可能)具有不同扩展名的,专门设计用于外部键入js文件的不同文件,是否不会帮助逐步过渡到ts?...

Any plans for resolving JS function parameter types from .d.ts? vscode#21454
Use d.ts specified types within a JavaScript Module Itself TypeScript#14342

0 个答案:

没有答案