在下面的代码中,变量x
的类型为RegExpExecArray | null
(根据VSCode)。
const storeIdRegExp = /s(?<storeId>\d+)/u;
const x = storeIdRegExp.exec(query);
怎样才能找到RegExpExecArray
**?的定义?我在任何地方都找不到文件。**
注意:我确实在TypeScript源代码中找到了一些引用,特别是1.0lib-noErrors.js和lib.es2018.regexp.d.ts (如果编译的目标是ES2018+,我认为它们也适用)。但这并不容易找到,而且我也不能百分之百肯定这些接口的结合是正确的答案。
发布于 2022-11-21 15:08:39
你应该写
let x: RegExpExecArray
然后使用“转到定义”命令(ctrl+click)
然后编辑器将向您展示其定义的所有部分:
// lib.es2018.regexp.d.ts
interface RegExpExecArray {
groups?: {
[key: string]: string
}
}
// lib.es2015.d.ts
interface RegExpExecArray extends Array<string> {
/**
* The index of the search at which the result was found.
*/
index: number;
/**
* A copy of the search string.
*/
input: string;
}
发布于 2022-11-21 15:15:47
只有特定于类型的API才会被TypeScript记录下来。您所引用的示例是非类型记录API,因此没有正式的TypeScript文档。
您必须从其各自的来源中找到文档。例如,RegExp.prototype.exec
是一个JavaScript API,因此您应该从ECMAScript或MDN找到它的文档。
您提到的类型引用(如RegExpExecArray
和许多其他引用)都是维护的在TypeScript回购中和来自DefinitelyTyped的一些其他扩展,但它们仅用作对正式文档的引用。
https://stackoverflow.com/questions/74520916
复制相似问题