Используйте отдельный файл определения типа ts для файла js - PullRequest
0 голосов
/ 13 марта 2019

Я унаследовал проект javascript, который не могу преобразовать в машинописный текст.
Можно ли создать файлы определения adhoc для каждого соответствующего файла 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 файлов работает при импорте в другой файл, но я хочу, чтобы "файл определения" для применения к этому конкретному файлу, к которому он "привязан" .Я читал, что объединение двух областей видимости - зло ( github issue ), , но почему его вообще рассматривают как две области видимости, поскольку при импорте из такого модуля он рассматривается какодна сфера?Таким образом, гипотетически, не может ли (возможно) другой файл с другим расширением, предназначенный специально для ввода js-файлов, внешне помочь постепенному переходу к ts? ...

Какие-либо планы по разрешениюТипы параметров функции JS из .d.ts?vscode # 21454
Использование d.ts указанных типов в самом модуле JavaScript TypeScript # 14342

...