我继承了一个无法转换为打字稿的JavaScript项目。
是否可以为每个相应的js文件创建临时定义文件:
例如这样的东西:
// 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