gpt4 book ai didi

javascript - 闭包编译器的正则表达式类型

转载 作者:数据小太阳 更新时间:2023-10-29 03:50:05 26 4
gpt4 key购买 nike

我目前正在向个人 javascript 模块添加类型注释,但我目前在尝试键入以正则表达式作为参数的函数时卡住了,但以下尝试均无效:

/** @type {function(RegExp)} */
/** @type {function(regex)} */

我只得到:

WARNING - Bad type annotation. Unknown type regexp

我应该在声明中使用什么类型?谢谢。

最佳答案

RegExp 对象被注释为 Closure Compiler在外部 es3.js .这是一个接受 RegExp 对象的示例函数。

/**
* @param {RegExp} regex A regular expression object.
* @param {string} text Text to match.
* @return {string} The first match in text.
*/
var firstMatch = function(regex, text) {
var match = regex.exec(text);
return match[1];
};

var text = 'Where art thou?';
var regex = new RegExp('^\\W*(\\w+)\\b', 'g');
var firstWord = firstMatch(regex, text);
alert(firstWord); // displays "Where"

使用 @type 注释的相同函数:

/** @type {function(RegExp, string): string} */
var firstMatch = function(regex, text) {
var match = regex.exec(text);
return match[1];
};

默认外部组件

闭包编译器包括 default externs例如 es3.js、es5.js 和 es6.js。这些外部文件通常不需要显式指定,除非设置了以下标志:

Closure Compiler Application : --use_only_custom_externs=true

Closure Compiler Service UI : @exclude_default_externs true

Closure Compiler Service API :exclude_default_externs=true

额外的外部人员

contrib/externs 下还有额外的外部人员可用默认情况下不包括在内。这些 externs 可以用 --externs 标志指定。

关于javascript - 闭包编译器的正则表达式类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10853582/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com